View Full Version : Some generic gsm card documentation

03-10-11, 01:07 PM
Maybe I'm just not looking in the right place but I can't find any documentation on sending calls to the Warp GSM cards. I have read:

Pika Freepbx documentation (http://outgoingftp.pikatech.com/appliance/2.2/docs_2.2.5/html/warp_asterisk_freepbx/frames.html)

but as I'm not using FreePBX it doesn't cover how to send an outbound call to a GSM channel.

I've figured out as much as:


and it does work but is there documentation anywhere which shows me what other things I can do such as sending calls to the whole gsm group (at a guess g0).


03-15-11, 10:22 AM
Hi Paul,

I don't know of any GSM documentation for sending calls to the Warp GSM cards through Asterisk - other than the chan_gsm code itself. But beyond the dial string you point out I don't believe there is much more.

There is no group support (for example using g0). As annoying as it is one workaround is to provide group logic in the dialplan itself.

06-15-11, 03:17 PM
Here is an example of one method of dialing a round robin GSM group through dialplan workaround in FreePBX - created by skar.

How to do round robin with GSM.

Need to add the following to the main extensions.conf

Need to add following to extensions file you are making GSM calls from. In FreePBX I would recommend extensions_additional.conf

; GSM Rotary Hunt Group Macro
; Arg1: Max Lines (e.g. 3)
; Arg2: Dial Number
; NOTE: Requires the global variable called NEXTLINE
; be defined in extensions.conf
exten => s,1,Set(TRIES=${ARG1})
exten => s,n(loop),Set(GLOBAL(NEXTLINE)=$[${NEXTLINE} + 1])
exten => s,n,GoToIf($[${NEXTLINE} <= ${ARG1}]?noreset)
exten => s,n,Set(GLOBAL(NEXTLINE)=1)
exten => s,n(noreset),ChanIsAvail(GSM/${NEXTLINE})
exten => s,n,GoToIf($["${AVAILCHAN}" == ""]?looptest,1)
exten => s,n,Dial(GSM/${NEXTLINE}/${ARG2})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-INVALIDARGS,1,Goto(looptest,1)
exten => s-CHANUNAVAIL,1,Goto(looptest,1)
exten => s-CONGESTION,1,Goto(looptest,1)
exten => s-CANCEL,1,Hangup
exten => s-BUSY,1,Busy
exten => s-ANSWER,1,Hangup
exten => s-NOANSWER,1,Hangup
exten => looptest,1,Set(TRIES=$[${TRIES} - 1])
exten => looptest,n,GotoIf($[${TRIES} > 0]?s,loop)
exten => looptest,n,Congestion exten => h,1,Hangup
; end of macro-gsm-rotary

When you want to dial out using the GSM trunks you would then do something like the following. In this case, "3" is the number of GSM channels you have and EXTEN is the number you want to dial.

exten => _XXXXXX.,1,macro(gsm-rotary,3,${EXTEN})