Questions… Connecting Asterisk To The World

Home » Asterisk Users » Questions… Connecting Asterisk To The World
Asterisk Users 4 Comments


asterisk list and community,

I have a problem in how our telefon switch (Siemens HiCOM)
“talks” with my new configured Asterisk server (V.11.18.0)

without my Asterisks server in the middle….

<--> Siemens HiCOM <-ISDN-> NTBA <-...-> PBX Telekom

A phone connected to the switch requests an “Outgoing” line by dialing “0”. The party is connected via ISDN to the carrier (deutsche Telekom) where the party preceeds to dial numbers… and the call is connected….

What I can see while I am dialing is that with every digit I press it is being displayed on my phone.
Further more, these digits are being processed by the carrier. The call goes through, rings, immediately on completion on the number or is rejected if busy.

WITH my Asterisks server in the middle of the exchange…

A phone connected to the switch requests an “Outgoing” line by dialing “0”. –> Asterisks recieves incoming call on “s”. The dialed digits are collected. The dial plan is executed accordingly but the “caller” recieves no more information about the dialed number. The number is not placed in the “dialed” numbers simple functions like
“redial” do not work anymore.

Does anybody know what I am doing wrong here. Is there a way to teach asterisk to behave exactly as if it were the PBX (deutsche Telekom).
So, as to say, act in a way that NO ONE will rightly know the differance between having asterisk taking over the function of the ISDN PBX.

What do I need? A better dial plan to somehow better simulate the way the switch normaly behaves?
Is hardware the problem?

My ISDN card in the server is:
“QuadBRI ISDN Digium Wildcard b410P”

Most everything else functionly works. incoming and outgoing calls from and to ISDN, VoIP and other equipment work fine.

Just that the phones and switch don’t recieve the “collected”
number sequence the was dialed.

Any help or ideas anyone might have would be greatly appreciated.



4 thoughts on - Questions… Connecting Asterisk To The World

  • This is not my area of expertise, but I’ll throw my $0.02 in…

    When you ‘request an outgoing line’ by dialing 0, that call leg is processed by Asterisk, thus, that is what the phone ‘sees’ as the dialed number and that’s what the phone will send when ‘redial’ is pressed.

    I think you need to make the outbound dial a single ‘transaction’ either by using an extension pattern that includes the 0 like ‘05555555555’ to dial 555-555-5555 or eliminate the 0 (and the idiom of ‘requesting an outgoing line’) and detect an internal vs external call via extension pattern matching.

    Does your internal extension numbering plan conflict with external national numbering plan?

    Dialing a prefix digit seems so 1970s to me.

  • this is the dialplan that I use:

    exten = s,1,Read(LOKAL,,,,1,5)
    same = n,Dial(SIP/${LOKAL}@tt)
    same = n,Hangup()

    When the user dials “0”, the HiCOM ISDN switch immediately goes “online” to the outgoing ISDN Copper Cable – connected to … A) …. B)

    A) connected to the NTBA in the wall jack to the NTBA phone company…
    the dialing preceeds to continue “offline” no dailtones are heard.
    The call is completed and connects

    B) connected to the Asterisk ISDN Card….

    Asterisk server reacts by executing the above dial plan…

    CLI > “answered call from “….” to “s”

    The user has an open “answered” line and the dialing are collected by
    listening to the DTMF tones. The generated dial tones can be heard
    on the phone line.

    Somehow the signaling on the line of the outgoing call is differant when the cable is handeled by the PBX or by asterisk.

    But why ?

    Can’t asterisk be configured to handle a call exactly as the otherwise connected phone company’s PBX would?

    thanks for listening,


  • I would:

    ) Drop the ‘dial 0’ anachronism.

    ) Not use read().

    ) Use extension pattern matching.

    For example, in the US, I would have something like (off the top of my head):

    ; external, local
    exten = _nxxxxxx,1, verbose(1,[${EXTEN}@${CONTEXT})
    same = n, goto(dial-local,${EXTEN},1)
    same = n, hangup()

    ; external, domestic
    exten = _nxxnxxxxxx,1, verbose(1,[${EXTEN}@${CONTEXT})
    same = n, goto(${CONTEXT},1${EXTEN},1)
    same = n, hangup()

    ; external, domestic
    exten = _1nxxnxxxxxx,1, verbose(1,[${EXTEN}@${CONTEXT})
    same = n, goto(dial-domestic,${EXTEN},1)
    same = n, hangup()

    ; international
    exten = _011x.,1, verbose(1,[${EXTEN}@${CONTEXT})
    same = n, goto(dial-international,${EXTEN},1)
    same = n, hangup()

    ; internal
    exten = _[2-9]xxx,1, verbose(1,[${EXTEN}@${CONTEXT})
    same = n, goto(dial-internal,${EXTEN},1)
    same = n, hangup()

    This sounds weird and very foreign (strange and unfamiliar, not as being a characteristic of a different country) to me. So, as a caller, I would hear the ‘0’ DTMF but no other tones? No feedback as I press keys?

    The dialplan does not reflect your intentions.

    Dialplan and channel configuration.

    My guess is yes.

  • Your problem is that you are still thinking in terms of old-fashioned, clicky-
    clicky mechanical telephone exchanges. Instead of “dialling 0 to request an outside line”, you need to let Asterisk accept all the digits and then determine for itself whether the call is going to be an inside or outside one.

    – If the user dials 3 digits (or however long your internal numbers are),
    treat it as an internal number.
    – If the user dials 6 digits (or however long numbers are on your local exchange), treat it as an external, local number.
    – If the user dials 11 digits starting with 0 (or however long a number is in your country, including the STD code), treat it as an external, STD number.
    – If the number dials 9 or more digits starting with 00, treat it as an external, IDD number.

    It will make your dialplan a little more complicated; but if it is too simple, you won’t be taking full advantage of the power of Asterisk.