Vicidial - How to accept Inbound number in E164 format
Topic: Vicidial E164 Format or DID with +(plus) Call Routing
Step by Step guide to handle the E164 format inbound calls in vicidial, or you can say handling the inbound calls received with leading + (plus) in DID numbers (+19234567890).
Most of the carriers supports sending the calls in E164 format which includes the leading +(plus) followed by country code , area code and followed by number as the Incoming DID. The challenge here is most of the PBX fail to accept the numbers which has some special characters like +.
Vicidial by default supports only the Digits in there predefined inbound context - trunkinbound ,located in asterisk configuration file extensions.conf. Also the vicidial older version doesn't support special characters while creating DID in there Admin Interface , The latest vicidial supports special characters but still you need edit the asterisk Dialplan.
Solution to handle E164 format number in vicidial
The solution to handle the E164 format numbers in vicidial is to modify the existing asterisk dialplan under the trunkinbound context.
Create your carrier in vicidial with the context set to trunkinbound as shown below
[carriername]type=friend
disallow=all
allow=all
context=trunkinbound
Next you need to edit the asterisk configuration file - Extensions.conf using your favorite editor like vi or nano and uncomment the line
exten => _+1X.,1,Goto(trunkinbound,${EXTEN:2},1)
vi /etc/asterisk/extensions.conf
under the trunkinbound context you will find the below Dialplan
[trunkinbound]
exten => _X.,1,AGI(agi-DID_route.agi)
; If you have DIDs that arrive with a plus and 1 at the beginning that you want to filter out, then uncomment
;exten => _+1X.,1,Goto(trunkinbound,${EXTEN:2},1)
exten => h,1,DeadAGI...........
You need to remove the symbol ";" as shown below
[trunkinbound]
exten => _X.,1,AGI(agi-DID_route.agi)
; If you have DIDs that arrive with a plus and 1 at the beginning that you want to filter out, then uncomment
exten => _+1X.,1,Goto(trunkinbound,${EXTEN:2},1)
Note if you are using older vicidial ,this particular Dialplan will be missing, in such case add this Dialplan under the trunkinbound context as shown here.
Conclusion:
This Dialplan will remove the Leading + and 1 and dials the remaining digit , so make sure the DID created in Vicidial admin portal should match the number without + and 1.
If you want to Discard only the leading + then modify the dialplan as shown below ,which any numbers which has leading + eg: +123456789, +9912329292.
exten => _+X.,1,Goto(trunkinbound,${EXTEN:1},1)
Hope this article is helpful, for professional support reach me on skype or telegram : striker24x7