[Freeswitch-users] DAHDI Dial 9 Receiving Setup Acknowledge
Ryan Wagoner
rswagoner at gmail.com
Mon Sep 14 12:48:04 PDT 2009
Sorry this was meant for the Asterisk list. I wish FreeSWITCH had QSIG
support so I could go that route.
Ryan
On Mon, Sep 14, 2009 at 3:46 PM, Ryan Wagoner <rswagoner at gmail.com> wrote:
> I have a Toshiba PBX connected via a QSIG PRI to Asterisk. I can make
> calls from the Toshiba to Asterisk and internal calls from Asterisk to
> the Toshiba. What I can't do is make an call with an outside
> destination from Asterisk to the Toshiba. The Toshiba is looking for 9
> to grab an outside line then it expects to see the 10 digits. In the
> FreePBX dial plan I use 9|. which sends 9 plus the 10 digit number.
>
> Using Wireshark to look at the QSIG commands coming from a Sangoma
> wanpipemon trace I see the following for an Asterisk to Toshiba
> internal call.
>
> Asterisk -> SETUP
> Toshiba -> CALL PROCESSING
> Toshiba -> CONNECT
> Asterisk -> CONNECT ACKNOWLEDGE
>
> However when trying to dial 9 + number I received the following
>
> Asterisk -> SETUP
> Toshiba -> SETUP ACKNOWLEDGE
>
> Looking at http://tools.ietf.org/html/rfc4497 I see the following
>
> On receipt of a QSIG SETUP message containing no Sending complete
> information element and a number in the Called party number
> information element that the gateway cannot determine to be complete,
> the gateway SHALL send back a QSIG SETUP ACKNOWLEDGE message, start
> QSIG timer T302, and await further number digits.
>
> Otherwise, the gateway SHALL wait for more digits
> to arrive in QSIG INFORMATION messages.
>
> Looking in the chan_dahdi.c code I see
>
> case PRI_EVENT_SETUP_ACK:
> chanpos = pri_find_principle(pri,
> e->setup_ack.channel);
> if (chanpos < 0) {
> ast_log(LOG_WARNING, "Received
> SETUP_ACKNOWLEDGE on unconfigured channel %d/%d span %d\n",
>
> PRI_SPAN(e->setup_ack.channel), PRI_CHANNEL(e->setup_ack.channel),
> pri->span);
> } else {
> chanpos =
> pri_fixup_principle(pri, chanpos, e->setup_ack.call);
> if (chanpos > -1) {
>
> ast_mutex_lock(&pri->pvts[chanpos]->lock);
>
> pri->pvts[chanpos]->setup_ack = 1;
> /* Send any queued digits */
> for (x = 0;x <
> strlen(pri->pvts[chanpos]->dialdest); x++) {
> ast_debug(1,
> "Sending pending digit '%c'\n", pri->pvts[chanpos]->dialdest[x]);
>
> pri_information(pri->pri, pri->pvts[chanpos]->call,
>
> pri->pvts[chanpos]->dialdest[x]);
> }
>
> ast_mutex_unlock(&pri->pvts[chanpos]->lock);
> } else
> ast_log(LOG_WARNING,
> "Unable to move channel %d!\n", e->setup_ack.channel);
> }
> break;
>
> How do I get Asterisk to queue these digits so DAHDI can send them in
> response to the SETUP ACKNOWLEDGE message. What should be happening is
> Asterisk sends 9 via the SETUP message, waits for the SETUP
> ACKNOWLEDGE, then send the 10 digits number via a INFORMATION message.
>
> Ryan
>
More information about the FreeSWITCH-users
mailing list