I’m running Asterisk 1.4 with the number of SIP phones.
If I have dtmfmode set by default (i.e. rfc2833) then DTMF codes are not recognized by Asterisk voicemail. If I will dial my provider’s voicemail system over SIP trunk then everything will be OK.
If I will set dtmfmode = inband (for SIP phone only) and set the SIP phone itself to use inband then only local voicemail will work, but not provider’s system.
If I will configure the phone to use info and set dtmfmode = info for that peer then Asterisk will report an error.
remember, dtmf can be set on a per-peer basis, which is what you should do. I would suggest use rfc2833 everywhere you can, and set your phone to use RFC. If that doesn’t work set your carrier to use RFC and have the phone use info. Asterisk will convert it as long as it is set differently on each side.
After I’ve enabled debug output I can see that the Asterisk itself is receiving DTMF from the SIP-phone, but for some reasons those digits are not passed to VoiceMail. Any suggestions?
-- Executing [86@longdistance:1] VoiceMailMain("SIP/12-081ba2d8", "") in new stack
[Jan 30 17:57:58] DEBUG[29778]: app_voicemail.c:6120 vm_execmain: Before ast_answer
-- Playing 'vm-login' (language 'en')
[Jan 30 17:58:02] DTMF[29778]: channel.c:2148 __ast_read: DTMF begin '#' received on SIP/12-081ba2d8
[Jan 30 17:58:11] DEBUG[29778]: app_voicemail.c:6028 vm_authenticate: Before find user for mailbox 12
-- Playing 'vm-password' (language 'en')
[Jan 30 17:58:14] DTMF[29778]: channel.c:2148 __ast_read: DTMF begin '1' received on SIP/12-081ba2d8
[Jan 30 17:58:14] DTMF[29778]: channel.c:2148 __ast_read: DTMF begin '2' received on SIP/12-081ba2d8
[Jan 30 17:58:15] DTMF[29778]: channel.c:2148 __ast_read: DTMF begin '1' received on SIP/12-081ba2d8
[Jan 30 17:58:15] DTMF[29778]: channel.c:2148 __ast_read: DTMF begin '2' received on SIP/12-081ba2d8
[Jan 30 17:58:17] DTMF[29778]: channel.c:2148 __ast_read: DTMF begin '#' received on SIP/12-081ba2d8
-- Incorrect password '' for user '12' (context = default)
-- Playing 'vm-incorrect-mailbox' (language 'en')
Then I compared this output with the call from the old good PAP2.
This is the difference:
[Jan 30 18:11:37] DTMF[29833]: channel.c:2148 __ast_read: DTMF begin '2' received on SIP/11-081b68a0
[Jan 30 18:11:37] DTMF[29833]: channel.c:2128 __ast_read: DTMF end '2' received on SIP/11-081b68a0
In the first example DTMF end is missing! Why? Thanks!
My 2 boxes, PAP2 ver.2 & VTech ip8100, both based on the same hw & sw, are sending rfc2833 packets in a manner which is different from the other devices like PAP2 ver.1 for example.
From the RFC:
bit E: If set to a value of one, the “end” bit indicates that this packet contains the end of the event.
So, my 2 boxes are not sending End of Event packets, but it seems that Asterisk cannot handle this.