[Asterisk-Users] nested dial, or jump to another line to continue dialing.

Joseph syscon at interbaun.com
Wed Aug 31 19:57:39 MST 2005


On Thu, 2005-09-01 at 10:07 +0800, El Flynn wrote:
> Joseph wrote:
> > 
> > Here is a session with "D()"
> > exten => _51,1,Dial(SIP/4791270 at pstn-5665,30,D(wwwwww218))
> > 
> > Executing Dial("SIP/11-3dec", "SIP/4791270 at pstn-5665|30|D(wwwwww218)") in new stack
> >     -- Called 4791270 at pstn-5665
> >     -- SIP/pstn-5665-713c is ringing
> >     -- SIP/pstn-5665-713c answered SIP/11-3dec
> >     -- Goto (office-open,s,1)
> >     -- Executing Wait("SIP/pstn-1270-e0f5", "2") in new stack
> >     -- Attempting native bridge of SIP/11-3dec and SIP/pstn-5665-713c
> >     -- Executing Answer("SIP/pstn-1270-e0f5", "") in new stack
> >     -- Executing NVBackgroundDetect("SIP/pstn-1270-e0f5", "welcome|t") in new stack
> >     -- Playing 'welcome' (language 'en')
> >     -- Executing Goto("SIP/pstn-1270-e0f5", "1|1") in new stack
> >     -- Goto (office-open,1,1)
> > 
> > It is not passing DTMF(218)
> > -----------end session "D()"-------------
> > 
> 
> Without looking at your dialplan for the context that SIP/4791270 belongs to, 
> what's most likely happening is the pauses are too short or too long. I've just 
> dialed out to my cellphone to test this, and yes i do hear the DTMF when I pick 
> up my cellphone.
> 
> You can create a simple test for this -- dial to your mobile phone or landline, 
> pick up the call and see if the DTMF is passed.
> 
> Flynn

Here is my dial plan, just for testing.  I have two land lines:
exten => _51,1,Dial(SIP/4791270 at pstn-5665,30,D(wwwwww218))


Though when I was looking around I run onto another user experiencing
the same, as I have: 
http://voxilla.com/index.php?name=PNphpBB2&file=viewtopic&t=3515&highlight=rfc2833+dtmf

-------quote------------
I recently noticed that my Sipura SPA-3000 refused to play DTMF keys sent to it by Asterisk (e.g. using, in extensions.conf, the SendDTMF() application or the D() parameter in the Dial() command). This applies to all versions of Asterisk, at least until the CVS HEAD of the 11th of May, 2005. 

After a lot of testing, I discovered that the SPA-3000 doesn't like to
receive "event start" and "event end" RTP Event packets with the same
timestamp. In versions up to the stable release 1.0.7, the timestamp
field was not updated at all by the routines sending DTMF digits, and
that represented a separate bug fixed in the CVS about thre weeks ago
(see http://bugs.digium.com/view.php?id=3675 ). However, the
ast_rtp_senddigit() function in rtp.c still uses the same timestamp for
all six RTP packets (three copies of event start and three copies of
event end) sent to the receiving peer. 

When it receives those packets, the SPA-3000 fails to produce a DTMF
tone; instead, it produces a sort of "click" for each digit. In order to
work around this problem, the timestamp field of the three last packets
must be at least one unit higher than the one in the first three
packets. Accordind to the section 3.5 of RFC2833, both Asterisk and
SPA-3000 get it wrong: the correct semantics should be that each packet
instructs the receiver to play a tone from the time written in the
timestamp to that time plus the content of the duration field;
successive packets may refine the two limits but not beyond the end
determined by timestamp plus duration in the "event end" packet(s). 

A separate minor problem is that the SPA-3000 appears to ignore both the
duration calculated from the RTP event packets and the content of the
setting "DTMF Playback Length:" in the "Regional" screen of the
"advanced" admin setup, and always plays a tone about 500 ms long. In
order to leave a gap between the digits, one should pass to asterisk
strings with the digits separated by 'w' characters (which translate
into 500 ms pauses). For instance: 

                                 Code:
                                    
                 exten => **802,2,SendDTMF(1w6w2w5w#) 
                                    
BTW, I'm curious to know if anybody else has experienced such problems. 
-------------end quote-------------

Though, this solution didn't work for me either, inserting "w" between digits.

-- 
#Joseph



More information about the asterisk-users mailing list