I recently needed to replace the voicemail server for a customer with a flexible alternative. We weren't in a position to remove the Avaya Magix PBX, so continued (and seamless) integration was still necessary. The only problem was the integration between the two systems. The connection was easy enough: 8 FXO ports in the Asterisk server using 2 4-port Digium TDM cards connected to the 8 analog or "single line" extensions from the 016 card in the Avaya. But, with different scenarios on call-in (voicemail check, roll-over to voicemail, inbound call, etc), Asterisk would need to behave differently, so how would this be accomplished?
In short, it's really simple. Avaya/Lucent use what some call "mode code", or DTMF digits used to "direct" the voicemail system as to the type of inbound call. The original server used analog lines as well, so determining those mode codes was simple as attaching a digit grabber and watching the digits come across as different voicemail calls were made.
The following was crafted in my dialplan to route the calls properly:
Mode Code Integration
Beware - the following syntax will probably need to be reviewed for compatibility with later versions of Asterisk. This stuff was used on a v1.0 box.
;Thefollowingextensionsgrabthemodecode
;comingfromtheAvayaPBXandroutethe
;callappropriatelyviatheVoicemail()
;andVoiceMailMain()apps.
;
;someonepressedvmailcheck
exten=>_#XX#XXXX##,1,VoicemailMain(${EXTEN:4:4})
exten=>_#XX#XXXX##,2,Hangup()
;insidecallrolledovertovmail
exten=>_#XX#XXXX#XXXX#,1,Voicemail(u${EXTEN:9:4})
exten=>_#XX#XXXX#XXXX#,2,Hangup()
;insidegroupcallrolledovertovmail
exten=>_#XX#XXXX#XXX#,1,Voicemail(u${EXTEN:9:3})
exten=>_#XX#XXXX#XXX#,2,Hangup()
;outside/PSTNcallrolledovertovmail
exten=>_#XX##XXX.,1,Voicemail(u${EXTEN:5:4})
exten=>_#XX##XXX.,2,Goto(s,7)
;outsidecallwentdirecttoAsteriskbox(callfromPSTN)
exten=>_#XX#XXX#,1,Wait(1)
exten=>_#XX#XXX#,2,Goto(s,7)
The only additional step is to ensure you do a WaitExten(1) right after answering as this is the timeframe when the mode code digits are sent across.
From here, you can do what you wish as far as giving your users the ability to leave and check voicemail, not to mention build a very nice automated attendant. As a side note, the Magix analog lines expect calls to be transferred by using the Flash() application, then SendDTMF(XXXX).
Voicemail or MWI (Message Waiting Indicator) Light Integration
The only thing left is to operate the voicemail lights properly, which again is accomplished by the Magix PBX using DTMF codes: *53XXXX for on, and #*53XXXX for off. This is accomplished by adding the following directive in your voicemail.conf:
externnotify=/usr/local/bin/vmnotify.pl
As well as adding the required script, the original listed here, and a backup listed here. Huge thanks to the original author, Mike Cathey.. Mike's website.
The script requires a few additional directories which are spelled out in the script's contents. Just browse through and make whatever changes you require. It also contains the ability to perform outbound calling when there's messages waiting, but I haven't needed it and thus haven't used or tested it.
See also
分享到:
相关推荐
VTK 13 Integrating with the Windowing__ System.pdf VTK 13 Integrating with the Windowing__ System.pdf
Integrating Python with Leading Computer Forensics Platforms 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
• Integration of the above components into the test bed which enables the testing of Mobile-Mobile (M-M), Mobile to Land (M-L) and Land to Mobile (L-M ) VOIP calls. Results Availability of cost ...
Apress - Office and SharePoint 2010 Users Guide - Integrating SharePoint with Excel Outlook Access and Word
Integrating Python with Leading Computer Forensics Platforms 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源...
Integrating_the_Ace_editor_with_Shiny._shinyAce
sap press doc 解压密码:abap_developer
Talking to the Database with Zend_Db CHAPTER 7. Processing Forms and Sending Email CHAPTER 8. Managing Your User Community CHAPTER 9. Integrating Google Maps CHAPTER 10. Introducing the Amazon ...
integrating them with the MySQL database server, the world’s most powerful open source database. It will teach you to access the data on your MySQL database server easily with Python’s library for ...
Expand your imagination by letting go of the limitations of traditional animation mediums, software packages, or workflows and integrating 2D and 3D assets. With the updated and expanded second ...
Integrating_Lync_Server_and_Avaya_CM.doc
Also, you will dive into migration, testing and integrating Truffle with the use of popular JavaScript frameworks. Lastly, you will ship your decentralized application and package it into a product. ...
SystemVerilog是一种基于IEEE标准的硬件描述语言(HDL),它在Verilog的基础上进一步发展,提供更丰富的数据类型、更强大的仿真和测试能力,并支持更复杂的系统级验证。SystemC是另一种硬件仿真语言,主要用于高层次...
As if that’s not enough, you’ll also learn some useful Machine Learning algorithms with the help of Spark MLib and integrating Spark with R. We’ll also make sure you’re confident and prepared for...