FreePBX with USB modem/dongle

Dear all, I have successfully managed to setup my dongle now and when i call it reaches the pbx. And btw the problem i reported earlier was fixed by changing tty in dong.conf frm defaulth ttyUSB1 and 2 to ttyUSB3 and 4 and it worked

Now am on the read work

I want to be able to make calls to my sim card in the Dongle and reach my pbx ivr and also makde call diverts to other simcards. More importantly I would first want to know the steps to take if i want call to my Dongle sim card to hit my Freepbx IVR

Regards

In order to make and receive calls, you must first create a trunk that will be used by the dongle.
Once the trunk has been created, you need to create at least one inbound route for incoming calls and one outbound route for outgoing calls.

The inbound route will take care of directing your incoming calls to the IVR. You must first create the IVR and then set it as the destination of the inbound route.

The outbound route will take care of the outgoing calls to other mobile or landline numbers. To do that, you define dial patterns that will be recognized by the PBX in order to route calls to the dongle and from there to the outside. For example, here in Cordoba, Argentina, all local mobile numbers start with 15 and have 7 digits after that, so if I would like to use 9 as the dialling prefix, I would create the following pattern to use the dongle for mobile calls:

9 15XXXXXXX

Hope it helps!

Thanks arielgrin, i am wondering what values i should put where, because currently when i make calls to the dongle sim card I get response from pbx -“Number u have called is not in service …”

Are you sure that is the exact message you are getting? If it is, you are probably not getting it from FreePBX but from your SIM provider.

Yes this is the msg i get, and its from PBX, I didnt create trunk, route yet, still not figured how to do it so i think this is the cause

Are you sure that the message is not something like “your call cannot be completed as dialed”?

“The number u have dialed isnt in service please check the number and try again +1234567890” thats what i get

You should post a complete log of the attempted call

Below is the log of the call:

[2017-07-13 02:56:06] VERBOSE[2757][C-00000000] pbx.c: Executing [s@from-trunk:6] SayAlpha(“Dongle/dongle0-0100000000”, “+1234567890”) in new stack
[2017-07-13 02:56:06] VERBOSE[2757][C-00000000] file.c: <Dongle/dongle0-0100000000> Playing ‘letters/plus.gsm’ (language ‘en’)
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx.c: Spawn extension (from-trunk, s, 6) exited non-zero on ‘Dongle/dongle0-0100000000’
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx.c: Executing [h@from-trunk:1] Macro(“Dongle/dongle0-0100000000”, “hangupcall,”) in new stack
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx.c: Executing [s@macro-hangupcall:1] GotoIf(“Dongle/dongle0-0100000000”, “1?theend”) in new stack
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx_builtins.c: Goto (macro-hangupcall,s,3)
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx.c: Executing [s@macro-hangupcall:3] ExecIf(“Dongle/dongle0-0100000000”, “0?Set(CDR(recordingfile)=)”) in new stack
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx.c: Executing [s@macro-hangupcall:4] Hangup(“Dongle/dongle0-0100000000”, “”) in new stack
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] app_macro.c: Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘Dongle/dongle0-0100000000’ in macro ‘hangupcall’
[2017-07-13 02:56:07] VERBOSE[2757][C-00000000] pbx.c: Spawn extension (from-trunk, h, 1) exited non-zero on ‘Dongle/dongle0-0100000000’
[2017-07-13 02:57:04] VERBOSE[2853][C-00000001] pbx.c: Executing [+1234567890@from-trunk:1] Set(“Dongle/dongle0-0100000001”, “__FROM_DID=+1234567890”) in new stack
[2017-07-13 02:57:04] VERBOSE[2853][C-00000001] pbx.c: Executing [+1234567890@from-trunk:2] NoOp(“Dongle/dongle0-0100000001”, “Received an unknown call with DID set to +1234567890”) in new stack
[2017-07-13 02:57:04] VERBOSE[2853][C-00000001] pbx.c: Executing [+1234567890@from-trunk:3] Goto(“Dongle/dongle0-0100000001”, “s,a2”) in new stack
[2017-07-13 02:57:04] VERBOSE[2853][C-00000001] pbx_builtins.c: Goto (from-trunk,s,2)
[2017-07-13 02:57:04] VERBOSE[2853][C-00000001] pbx.c: Executing [s@from-trunk:2] Answer(“Dongle/dongle0-0100000001”, “”) in new stack
[2017-07-13 02:57:05] WARNING[2853][C-00000001] chan_sip.c: This function can only be used on SIP channels.
[2017-07-13 02:57:05] VERBOSE[2853][C-00000001] pbx.c: Executing [s@from-trunk:3] Log(“Dongle/dongle0-0100000001”, "WARNING,Friendly Scanner from ") in new stack
**[2017-07-13 02:57:05] WARNING[2853][C-00000001] Ext. s: Friendly Scanner from **
[2017-07-13 02:57:05] VERBOSE[2853][C-00000001] pbx.c: Executing [s@from-trunk:4] Wait(“Dongle/dongle0-0100000001”, “2”) in new stack
[2017-07-13 02:57:07] VERBOSE[2853][C-00000001] pbx.c: Executing [s@from-trunk:5] Playback(“Dongle/dongle0-0100000001”, “ss-noservice”) in new stack
[2017-07-13 02:57:07] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘ss-noservice.gsm’ (language ‘en’)
[2017-07-13 02:57:12] VERBOSE[2853][C-00000001] pbx.c: Executing [s@from-trunk:6] SayAlpha(“Dongle/dongle0-0100000001”, “+1234567890”) in new stack
[2017-07-13 02:57:12] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘letters/plus.gsm’ (language ‘en’)
[2017-07-13 02:57:13] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘digits/1.gsm’ (language ‘en’)
[2017-07-13 02:57:13] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘digits/2.gsm’ (language ‘en’)
[2017-07-13 02:57:14] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘digits/3.gsm’ (language ‘en’)
[2017-07-13 02:57:15] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘digits/4.gsm’ (language ‘en’)
[2017-07-13 02:57:15] VERBOSE[2853][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘digits/5.gsm’ (language ‘en’)
[2017-07-13 02:57:15] VERBOSE[2853][C-00000001] pbx.c: Spawn extension (from-trunk, s, 6) exited non-zero on ‘Dongle/dongle0-0100000001’
[2017-07-13 02:57:15] VERBOSE[2853][C-00000001] pbx.c: Executing [h@from-trunk:1] Macro(“Dongle/dongle0-0100000001”, “hangupcall,”) in new stack
[2017-07-13 02:57:15] VERBOSE[2853][C-00000001] pbx.c: Executing [s@macro-hangupcall:1] GotoIf(“Dongle/dongle0-0100000001”, “1?theend”) in new stack
[2017-07-13 02:57:16] VERBOSE[2853][C-00000001] pbx_builtins.c: Goto (macro-hangupcall,s,3)
[2017-07-13 02:57:16] VERBOSE[2853][C-00000001] pbx.c: Executing [s@macro-hangupcall:3] ExecIf(“Dongle/dongle0-0100000001”, “0?Set(CDR(recordingfile)=)”) in new stack
[2017-07-13 02:57:16] VERBOSE[2853][C-00000001] pbx.c: Executing [s@macro-hangupcall:4] Hangup(“Dongle/dongle0-0100000001”, “”) in new stack
[2017-07-13 02:57:16] VERBOSE[2853][C-00000001] app_macro.c: Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘Dongle/dongle0-0100000001’ in macro ‘hangupcall’
[2017-07-13 02:57:16] VERBOSE[2853][C-00000001] pbx.c: Spawn extension (from-trunk, h, 1) exited non-zero on ‘Dongle/dongle0-0100000001’

That doesn’t seem to be the full log of the call. In any case, you must create an outbound route and try to dial a real number, I think +1234567890 is probably a fake number and that is maybe why you get that “not in service” message.

Here is my other log. I have seen something from a forum and tried but no change to my problem:-

I did

Incomming:

In dongle.conf change context=default to context=from-trunk

To save Subscriber Number, you can write an entry for OWN NUMBERS storage
on SIM. For example, in asterisk CLI
dongle cmd dongle0 AT+CPBS="ON"
dongle cmd dongle0 AT+CPBW=1,"+556191000000",145

Restart Asterisk

In FreePBX Create a Inbound Route with Name: Your Inbound and Description like +256*. Destination: Queue or Extensions etc**

Logs from Full

[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx.c: Executing [+256759811239@from-trunk:1] Set(“Dongle/dongle0-0100000001”, “__FROM_DID=+256759811239”) in new stack
[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx.c: Executing [+256759811239@from-trunk:2] NoOp(“Dongle/dongle0-0100000001”, “Received an unknown call with DID set to +256759811239”) in new stack
[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx.c: Executing [+256759811239@from-trunk:3] Goto(“Dongle/dongle0-0100000001”, “s,a2”) in new stack
[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx_builtins.c: Goto (from-trunk,s,2)
[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx.c: Executing [s@from-trunk:2] Answer(“Dongle/dongle0-0100000001”, “”) in new stack
[2017-07-13 13:53:28] WARNING[3119][C-00000001] chan_sip.c: This function can only be used on SIP channels.
[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx.c: Executing [s@from-trunk:3] Log(“Dongle/dongle0-0100000001”, "WARNING,Friendly Scanner from ") in new stack
[2017-07-13 13:53:28] WARNING[3119][C-00000001] Ext. s: Friendly Scanner from
[2017-07-13 13:53:28] VERBOSE[3119][C-00000001] pbx.c: Executing [s@from-trunk:4] Wait(“Dongle/dongle0-0100000001”, “2”) in new stack
[2017-07-13 13:53:30] VERBOSE[3119][C-00000001] pbx.c: Executing [s@from-trunk:5] Playback(“Dongle/dongle0-0100000001”, “ss-noservice”) in new stack
[2017-07-13 13:53:30] VERBOSE[3119][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘ss-noservice.gsm’ (language ‘en’)
[2017-07-13 13:53:35] VERBOSE[3119][C-00000001] pbx.c: Executing [s@from-trunk:6] SayAlpha(“Dongle/dongle0-0100000001”, “+256759811239”) in new stack
[2017-07-13 13:53:35] VERBOSE[3119][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘letters/plus.gsm’ (language ‘en’)
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] file.c: <Dongle/dongle0-0100000001> Playing ‘digits/2.gsm’ (language ‘en’)
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx.c: Spawn extension (from-trunk, s, 6) exited non-zero on ‘Dongle/dongle0-0100000001’
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx.c: Executing [h@from-trunk:1] Macro(“Dongle/dongle0-0100000001”, “hangupcall,”) in new stack
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx.c: Executing [s@macro-hangupcall:1] GotoIf(“Dongle/dongle0-0100000001”, “1?theend”) in new stack
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx_builtins.c: Goto (macro-hangupcall,s,3)
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx.c: Executing [s@macro-hangupcall:3] ExecIf(“Dongle/dongle0-0100000001”, “0?Set(CDR(recordingfile)=)”) in new stack
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx.c: Executing [s@macro-hangupcall:4] Hangup(“Dongle/dongle0-0100000001”, “”) in new stack
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] app_macro.c: Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘Dongle/dongle0-0100000001’ in macro ‘hangupcall’
[2017-07-13 13:53:36] VERBOSE[3119][C-00000001] pbx.c: Spawn extension (from-trunk, h, 1) exited non-zero on ‘Dongle/dongle0-0100000001’

That seems to be an incoming call. Yoy must create an incoming route for incoming calls to work, otherwise you will get the “number not in service” error

Exactly but i think i am not sure exaclty how to do this, would u help with the manual for this, one i can follow

At this point it should be more helpful to delete the inbound and the outbound routes and then the trunk and start again from the beginning.

You will have a lot to read, because the trunk for the dongle is a Custom Trunk.

The following is the minimal info to guide you, but you should investigate and try it for yourself.

First make sure that on dongle.conf context is set to from-trunk: context=from-trunk

Log into FreePBX, in Connectivity – Trunks, click Add Custom Trunk. Enter a trunk name, enter your SIM Phone number into “Outbound CallerID” field, enter 1 in “maximum channels”, go to “custom settings” and in “Custom Dial String” field enter the following:

dongle/dongle0/$OUTNUM$

Then create an outbound route and only modify “trunk sequence for matched routes” to point to your dongle and define the dial patterns.

At last create an inbound route and only modify the destination, do not set any DID number nor any callerID number, leave those 2 fields empty.

After that, try to call the dongle sim number and check if the call arrives into the destination you set for incoming, and then try to make an outgoing call from your pbx.

If any of those fail, post a complete log of each try, one log for an incoming call and another log for the outgoing call, but be sure to post the complete log, otherwise is nearly impossible to help.

Asante = gracias =thank you :slight_smile:

Followed your guide indeed its a great guide. This works am now installing soft phone to see if call reached. atleast for now no error. I will keep u posted.

Infact for all this when i am successful i want to develop a full manual of what i have gone through for anyone else to use in future.

am really happy and grateful to all of you guys that have helped.

Asante Sana (Thank you very much)

Hello, My Freepbx is working, i can now make call to Dongle and hit the ivr and prompts work. I am not having a problem. I want my call to hit the IVR and then when press number eg 1 which directs me to the extension.

I have tried to setup extension but this is my first time and dont know if am doing anything right. First I see different types of extensions in my PBX (Custom, DAHDI, IAX2, PJSIP, Chan_SIP, and Custom) extensions, I selected Chan_sip and also installed xlite on user computer but i have failed to get calls reach my soft phone and on soft phone side i also get error 408, - Account failed to Enable.

How can i get this fixed

I think you should first read the FreePBX manual. Creating and registering an extension is one of the basic tasks after installing FreePBX.

Yes I read, thought no clear definition of the different types of extensions for starters am confused on which one to use in this case

For softphones and IP deskphones you definitely want chan_sip or chan_pjsip, depending on which one you enabled on FreePBX. Dahdi is used with telephony cards like the ones sangoma or digium sell to connect to PSTN or T1/E1, IAX is generally used to create a connection between two or more asterisk servers, custom, as the name implies, is for when you have a specific connection that needs to be customized.

Alright, let me go through the extension setup video and do it.

Btw will it be possible to also have call come to my dongle and then also can call other mobile phones through PBX