Ringback Issue

Home » Asterisk Users » Ringback Issue
Asterisk Users 3 Comments

My last problem was nicely solved through this mailing list so hopefully this new problem will have the same happy outcome.

My situation is that I have many extensions. Here is a sample:

[client-phone](!)
type=friend host=dynamic secret=XXXXXXXXXX
dtmfmode=auto disallow=all allow=ulaw allow=gsm allow=g723
allow=ilbc subscribemwi=no

[4165555555](client-phone)
secret=xxxxxxxxxxxxxxxxxxxxxxxxxx callerid=D’Arcy <4165555555>
mailboxA65555555@VoiceMail context=LocalSets

I can send calls to this extension with this:

exten => 1,Verbose(0,${CALLERID(all)} Calling ${EXTEN})
same => n,Dial(SIP/4165555555,30)
same => n,VoiceMail(4165555555@VoiceMail,u)
same => n,Hangup()

Up to this point everything works as expected. I call in and I hear a ringback until the extension is picked up.

Now I add a virtual PBX to the mix.

[pbx-17842]
exten => s,1,Verbose(0,${CALLERID(all)} Calling PBX 17842)
same => n,Answer
same => n,Wait(2)
same => n(announce),Background($SOUNDS/pbx-17842/announce)
same => n,WaitExten()
same => n,DigitTimeout,5
same => n,ResponseTimeout,10
same => n,Goto(s,announce)

exten => i,1,Verbose(0,${CALLERID(all)} dialed invalid extension
${EXTEN}) same => n,Playback(invalid)
same => n,Goto(s,announce)

exten => 200,1,Verbose(0,${CALLERID(all)} Calling PBX darcy)
same => n,GoTo(LocalSets,4165555555,1)

Finally I add an extension to go to that context:

exten => 4165556666,1,GoTo(pbx-17842,s,1)

When I dial 4165556666 I get no ringback which I can sort of live with since it gets answered pretty quickly but then when I dial “200” it transfers me correctly to the 4165555555 extension but there is no ringback there either and that is a problem because caller think that the phone has gone dead.

So, when I call 4165555555 it works fine but if I call it through the virtual PBX it fails. I tried various combinations of “Ringing” and
‘r’ options and “prematuremedia=no” and “progressinband=yes” but nothing seems to help. Can someone suggest a line of enquiry?

Cheers.

3 thoughts on - Ringback Issue

  • I tried changing the above to;

    same => n,Dial(SIP/4165555555)
    and
    same => n,Dial(SIP/4165555555,,r)

    Same problem.

  • D’Arcy J.M. Cain wrote:

    What is the complete console output and do you have an indications.conf configuration file?

    I ask because in this scenario Asterisk would be generating the ringback itself as audio.

    Cheers,

  • In fact I added a “Ringing” and a “Wait(3)” so there is at least one ringback now.

    This still fails though.

    Here is the sanitized output. 4165551111 is the external caller,
    4165552222 is the internal extension attached to PBX ext. 212 and
    4165553333 is the cell that also gets called.

    — Executing [6473512047@LocalSets:1] Goto(“SIP/4165551111-0000001b”, “pbx-17842,s,1”) in new stack
    — Goto (pbx-17842,s,1)
    — Executing [s@pbx-17842:1] Verbose(“SIP/4165551111-0000001b”, “0,”Caller” <4165551111> Calling PBX 17842″) in new stack
    “Caller” <4165551111> Calling PBX 17842
    — Executing [s@pbx-17842:2] Ringing(“SIP/4165551111-0000001b”, “”) in new stack
    [Aug 25 14:01:31] WARNING[-1][C-0000000e]: channel.c:4674 ast_indicate_data: Unable to handle indication 3 for ‘SIP/4165551111-0000001b’
    — Executing [s@pbx-17842:3] Wait(“SIP/4165551111-0000001b”, “3”) in new stack
    — Executing [s@pbx-17842:4] BackGround(“SIP/4165551111-0000001b”, “/usr/local/var/sounds/pbx-17842/announce”) in new stack
    > 0x7f7fef34f000 — Probation passed – setting RTP source address to 207.35.13.14:16432
    Playing ‘/usr/local/var/sounds/pbx-17842/announce.gsm’ (language ‘en’)
    > 0x7f7fef34f000 — Probation passed – setting RTP source address to 207.35.13.14:16432
    [Aug 25 14:01:36] DTMF[-1][C-0000000e]: channel.c:4214 __ast_read: DTMF begin ‘2’ received on SIP/4165551111-0000001b
    [Aug 25 14:01:36] DTMF[-1][C-0000000e]: channel.c:4218 __ast_read: DTMF begin ignored ‘2’ on SIP/4165551111-0000001b
    [Aug 25 14:01:36] DTMF[-1][C-0000000e]: channel.c:4128 __ast_read: DTMF end ‘2’ received on SIP/4165551111-0000001b, duration 180 ms
    [Aug 25 14:01:36] DTMF[-1][C-0000000e]: channel.c:4198 __ast_read: DTMF end passthrough ‘2’ on SIP/4165551111-0000001b
    [Aug 25 14:01:36] DTMF[-1][C-0000000e]: channel.c:4214 __ast_read: DTMF begin ‘1’ received on SIP/4165551111-0000001b
    [Aug 25 14:01:36] DTMF[-1][C-0000000e]: channel.c:4218 __ast_read: DTMF begin ignored ‘1’ on SIP/4165551111-0000001b
    [Aug 25 14:01:37] DTMF[-1][C-0000000e]: channel.c:4128 __ast_read: DTMF end ‘1’ received on SIP/4165551111-0000001b, duration 180 ms
    [Aug 25 14:01:37] DTMF[-1][C-0000000e]: channel.c:4198 __ast_read: DTMF end passthrough ‘1’ on SIP/4165551111-0000001b
    [Aug 25 14:01:37] DTMF[-1][C-0000000e]: channel.c:4214 __ast_read: DTMF begin ‘2’ received on SIP/4165551111-0000001b
    [Aug 25 14:01:37] DTMF[-1][C-0000000e]: channel.c:4218 __ast_read: DTMF begin ignored ‘2’ on SIP/4165551111-0000001b
    [Aug 25 14:01:37] DTMF[-1][C-0000000e]: channel.c:4128 __ast_read: DTMF end ‘2’ received on SIP/4165551111-0000001b, duration 160 ms
    [Aug 25 14:01:37] DTMF[-1][C-0000000e]: channel.c:4198 __ast_read: DTMF end passthrough ‘2’ on SIP/4165551111-0000001b
    == CDR updated on SIP/4165551111-0000001b
    — Executing [212@pbx-17842:1] Verbose(“SIP/4165551111-0000001b”, “0,”Caller” <4165551111> Calling PBX extension 4165552222″) in new stack
    “Caller” <4165551111> Calling PBX extension 4165552222
    — Executing [212@pbx-17842:2] Ringing(“SIP/4165551111-0000001b”, “”) in new stack
    — Executing [212@pbx-17842:3] Goto(“SIP/4165551111-0000001b”, “LocalSets,4165552222,1”) in new stack
    — Goto (LocalSets,4165552222,1)
    — Executing [4165552222@LocalSets:1] Verbose(“SIP/4165551111-0000001b”, “0,Entering extension 4165552222”) in new stack Entering extension 4165552222
    — Executing [4165552222@LocalSets:2] Ringing(“SIP/4165551111-0000001b”, “”) in new stack
    — Executing [4165552222@LocalSets:3] GotoIf(“SIP/4165551111-0000001b”, “0?DialDesk”) in new stack
    — Executing [4165552222@LocalSets:4] GotoIf(“SIP/4165551111-0000001b”, “0?DialDesk”) in new stack
    — Executing [4165552222@LocalSets:5] Verbose(“SIP/4165551111-0000001b”, “0,”Caller” <4165551111> Calling “4165552222” and cell “4165553333””) in new stack
    “Caller” <4165551111> Calling “4165552222” and cell “4165553333”
    — Executing [4165552222@LocalSets:6] Dial(“SIP/4165551111-0000001b”, “SIP/4165552222&SIP/thinktel/4165553333,30,r”) in new stack
    — Called SIP/4165552222
    — Called SIP/thinktel/4165553333
    — SIP/4165552222-0000001c connected line has changed. Saving it until answer for SIP/4165551111-0000001b
    — SIP/4165552222-0000001c is ringing
    — SIP/thinktel-0000001d is making progress passing it to SIP/4165551111-0000001b
    > 0x7f7ff077d000 — Probation passed – setting RTP source address to 206.80.250.102:26014
    == Spawn extension (LocalSets, 4165552222, 6) exited non-zero on
    ‘SIP/4165551111-0000001b’