[Asterisk-Dev] Passing overlap digits from one pri-E1 to another

Peter Svensson psvasterisk at psv.nu
Wed Jun 9 14:28:35 MST 2004


In Sweden overlap dialing is the norm due to our varying length phone 
numbers. I am currently interfacing asterisk to our telco and our existing 
pbx through two E1 links off a TE405P. The pbx sends all digis as single 
overlap digits regardless of how they are dialed.

Most things work as expected. However, there seems to be a problem with 
overlap digits. We have an extension
  exten => 0,1,Dial(Zap/g1)
that sends the connection from the pbx to an outside line immediatly. This 
works, but no further digits are passed. After a bit of sifting through 
the source I found that the INFORMATION elements from the pbx are stopped 
in libpri/q931.c q931_receive() by the following test:

  if (c->ourcallstate!=Q931_CALL_STATE_OVERLAP_RECEIVING)
      break;
After the dial command is executed the digits are dropped since 
ourcallstate==Q931_CALL_STATE_INCOMING_CALL_PROCEEDING. 

I have tried allowing that state as well and this seems to work. Is this 
the correct way to solve this?

Another problem occurs when the pbx sends a long dialstring by itself. 
There is a window between deciding which extension to use and having 
seized the b channel and set up the call. Incoming digits during this 
interval are neither remembered nor passed to the outgoing channel by 
app_dial. 

Peter
--
Peter Svensson      ! Pgp key available by finger, fingerprint:
<petersv at psv.nu>    ! 8A E9 20 98 C1 FF 43 E3  07 FD B9 0A 80 72 70 AF
------------------------------------------------------------------------
Remember, Luke, your source will be with you... always...





More information about the asterisk-dev mailing list