SOLVED International Calling

Status
Not open for further replies.

cengbrecht

Member
Jun 24, 2018
57
2
8
Hey Guys,
My in-laws have signed up to use my services, and I am trying to enable calling to Germany:
Call would look like this, 01149(14 other numbers)
I would like to setup this for just their account, but all my tests and searching don't seem to work, it either adds a 1, or removes the 011...
Please help! :p
 
Last edited:

EasyBB

Active Member
Oct 23, 2016
240
33
28
Australia

cengbrecht

Member
Jun 24, 2018
57
2
8
When I say account, I mean domain. As for where it shows the 1 or removing the 011, that is at Skyetel's side. I will send a screenshot here...
When I was working on this, I tried a bunch of different methods, all the reporting that came through showed that it removed digits as recognized, and or added digits which made it fail. As you can see below, the number is supposed to be 0114922843345000
It either removed the 01149 and added a 1, or it would add 19 to the beginning.
Its quite annoying... :p

1536889941213.png
 

cengbrecht

Member
Jun 24, 2018
57
2
8
As a note, its Fusion shaping the number, not Skyetel. I feel your technicality was not helpful.
 

EasyBB

Active Member
Oct 23, 2016
240
33
28
Australia
The easiest way to get a correct answer is to explain your problem in a logical way so that someone else without having access to all the context can understand and answer.

Where are you dialing from? I understand you are trying to dial Germany. What format does Skyetel expect an international number to hit its systems? Please post a screenshot of your outbound route for international call.
 

cengbrecht

Member
Jun 24, 2018
57
2
8
Calling from Canada
As per your request, that is my current dialing set up. It is default as you can see.
Skyetel expects the full number, 01149...
 

Attachments

  • Screenshot_20180914-004115.png
    Screenshot_20180914-004115.png
    238.1 KB · Views: 117

EasyBB

Active Member
Oct 23, 2016
240
33
28
Australia
Ok so here it goes.....

Your matching condition should be ^(?:011|00|\+)(49\d{8,})$
Then on bridge, prefix the inline captured group $1 with 011 which will become 011$1

This will enable your in-laws to dial in any of these formats:
  • 01149x
  • 0049x
  • +49x (dialing from a smart phone client)

It goes without saying you'll need different dial plan blocks for North America and Germany dialing.
 
Last edited:

cengbrecht

Member
Jun 24, 2018
57
2
8
You know somewhere where I can get those two things explained? I've been trying to research this so I can build my own, but I haven't found anything?

Edit: I have entered that information, and will see what the user says.
 
Last edited:

cengbrecht

Member
Jun 24, 2018
57
2
8
Well, at the moment, it seems that the calls are not leaving Fusion. According to this its the same issue I had, where its still removing numbers, and adding others? ..

It seems that when they are dialing they are using 01149 and the number, but Fusion is stripping out the 49, and adding on 770033011 the last 011 being canada's country code?
 

Attachments

  • Untitled.png
    Untitled.png
    82 KB · Views: 62

EasyBB

Active Member
Oct 23, 2016
240
33
28
Australia
There's something weird going on with your dial plan. Can you pastebin a call log and post the link here? Please sanitise the log before posting. It is best to use a good text editor (eg Notepad++) and do a replace all to substitute the string you wish to sanitise. Please don't go over the top with the clean up; it still has to make sense for the people looking at it.
 

cengbrecht

Member
Jun 24, 2018
57
2
8
Hey @EasyBB, so I have tried to research regular expression. The biggest issue I have is getting it to match the regular expression...
This is one of the expressions:
Code:
Regex (FAIL) [skyetel] destination_number(bind_digit_action) =~ /^\+?0?(\d{14})$/ break=on-false
Regex (FAIL) [skyetel] destination_number(bind_digit_action) =~ /^(?:011|00|\+)(49\d{10,})$/ break=on-false
Regex (FAIL) [skyetel] destination_number(bind_digit_action) =~ /^(?:011|00|\+)(49\d{8,})$/ break=on-false

I have tried to get it to match by changing variables, and checking statuses, and a lot of things. Nothing works...
Edit, even with your expression, which had 8 characters after the 49, I tried 10, and it still fails.
Any idea's why?
The number I am using is:
011492283694949

Don't worry, its a restaurant in Germany, they are closed, and I can't even get through.

A successful call will show up like below:
Code:
Regex (PASS) [skyetel] destination_number(403#######) =~ /^\+?1?(\d{10})$/ break=on-false
This call goes through no problem...

If however I use this:
Code:
Regex (PASS) [skyetel] destination_number(011492283694949) =~ /^\+?0?(\d{14})$/ break=on-false
It shows as passed, but it still gives me busy signal. And I don't see it passed to Skyetel.

And finally, here is my log, https://pastebin.com/BHdweASU
I am not sure how much of the call I am missing, but here you go. I can get another. I just make random calls to restaurants.
 
Last edited:

EasyBB

Active Member
Oct 23, 2016
240
33
28
Australia
Edit, even with your expression, which had 8 characters after the 49, I tried 10, and it still fails.
Any idea's why?
The number I am using is:
011492283694949
1537021719467.png

There's no problem with the regex I gave you.

Remove all extra gateways from the dial plan block leaving just Skyetel. Turn siptrace on in fs_cli and post log to pastebin. There's a special pastebin for FreeSWITCH log with syntax highlighting: https://pastebin.freeswitch.org/

Do you know your Skyetel account supports international dialing? Can you try the account directly from a softphone (eg PhonerLite) with SIP debug turned on?
 

cengbrecht

Member
Jun 24, 2018
57
2
8
I did not create or change the Skyetell settings, The server created those. I just cloned it to use your pass through stuff.
 

cengbrecht

Member
Jun 24, 2018
57
2
8
Looks like I did actually need to talk to Skyetel, your information was limited.
But I appreciate your help. :)
In the end the dial code I needed was: ^(011\d{9,17})$
But I also had to setup new gateways, and set some other more specific information.

Anyone else dealing with Skyetel, I would 100% recommend them sending in a quick ticket. :) They are awesome.
 

UCtech

Member
Jan 9, 2019
34
6
8
I had a similar problem with Twilio. Looks like they don't want the 011 coming through, only the country code and number. So I got this dial plan to work:
^011(\d{9,17})$
Not sure, but I think what it does is require the user to dial 011 (for a match for International), but does not pass it on through the gateway (by moving the 011 outside of the parenthesis)
As for the bridge, Twilio requires a + before the numbers sent, so it would be a +$1 at the end of the bridge string.
 

UCtech

Member
Jan 9, 2019
34
6
8
Apparently I wrote too soon, what I put above started to not work soon after. Apparently the phones I am using for this (Grandstream) decide to remove the 011 if dialed out of history. So to get this to work with the Grandstreams anyway the dialplan has to work with 011 or without it. After numerous tries and fails, a programmer with more knowledge of Regex than I helped create this dialplan destination and now it works both ways:
^(?:011|)(\d{9,17})$

If anyone else has wisdom to share please do!
 
Status
Not open for further replies.