.titleBar { margin-bottom: 5px!important; }

Line-Select, CbC, ISDN/SIP, ... eine Beispiel-Konfiguration!

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von allesOK, 30 Aug. 2004.

  1. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Dieser Thread sammelt beantwortet einige Fragen, die ich in anderen gestellt habe (ich ihn dort jeweils entsprechend verlinkt):

    Meine Ziel war es Sip-Telefone (11 und 22) und zwei ISDN-Telefone (11111 & 22222) an einen * anzuschliesen. Diese Einschränkung ist nur für diese Beispiel gemacht. In Wirklichkeit ist es egal. Die ISDN-Telefone hängen an einer NT-HFC-Karte und der * selbst verfügt den diversen benutzerspezifischen Sip-Provider-Accounts auch über eine weitere HFC-Karte (TE-Modus), die mit dem Telekom NTBA verbunden ist.

    Wie diese konfiguriert sein sollten steht
    http://www.ip-phone-forum.de/forum/viewtopic.php?t=3023
    und
    http://www.ip-phone-forum.de/forum/viewtopic.php?t=3235

    Die extensions.conf erstmal komplett:
    Code:
    [general]
    
    static=yes
    writeprotect=no
    
    [globals]
    
    VOIPMSN=Zap/g1
    TCOM=Zap/g2
    
    [default]
    
    include => sip2out
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;users ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    [macro-user11111]
    
    exten => s,1,SetVar(MYNAME=MSN11111)
    exten => s,2,SetVar(MYMSN=11111)
    exten => s,3,SetVar(MYSIPGROUP=SIP/11)
    exten => s,4,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,5,SetVar(MYNUMSIP=1)
    exten => s,6,SetVar(MYSIP1=sipgate11)
    exten => s,6,SetVar(MYSIP1=unisaarland-intl)
    
    [macro-user22222]
    
    exten => s,1,SetVar(MYNAME=MSN22222)
    exten => s,2,SetVar(MYMSN=22222)
    exten => s,3,SetVar(MYSIPGROUP=SIP/22)
    exten => s,4,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,5,SetVar(MYNUMSIP=3)
    exten => s,6,SetVar(MYSIP1=sipgate22)
    exten => s,7,SetVar(MYSIP2=unisaarland-intl)
    exten => s,8,SetVar(MYSIP3=webde22)
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; external ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; outgoing calls
    
    [macro-callwithpstn]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    
    exten => s,1,SetCIDNum(${ARG1})
    exten => s,2,SetCIDName(${ARG2})
    exten => s,3,Dial(${TCOM}/${CBC}${EWL},60,Ttr)
    exten => s,104,GotoIf($[${DIALSTATUS} = CONGESTION]?109:110)
    exten => s,105,Dial(${TCOM}/${EWL},60,Ttr)
    exten => s,106,Playtones(busy);
    exten => s,107,Busy
    
    [macro-callwithsip]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    ; ARG3 = sipprovider
    
    exten => s,1,SetCIDNum(${ARG1})
    exten => s,2,SetCIDName(${ARG2})
    exten => s,3,SetVar(NUMBER2DIAL=${EWL})
    exten => s,4,GotoIf($[${ARG3:-5} = -intl]?5:6)
    exten => s,5,SetVar(NUMBER2DIAL=${INTL})
    exten => s,6,Dial(SIP/${NUMBER2DIAL}@${ARG3},60,Ttr)
    exten => s,107,GotoIf($[${DIALSTATUS} = CONGESTION]?108:109) 
    exten => s,108,Macro(callwithpstn,${ARG1},${ARG2})
    exten => s,109,Playtones(busy);
    exten => s,110,Busy
    
    [macro-notallowed]
    
    exten => s,1,Answer
    exten => s,2,Wait(0.5)
    exten => s,3,Playback(ss-noservice)
    exten => s,4,Hangup
    
    [forbidden]
    
    ; 019x
    exten => _019X.,1,Macro(notallowed)
    
    ; 0900
    exten => _0900X.,1,Macro(notallowed)
    
    ; EMSAT
    exten => _0088X.,1,Macro(notallowed)
    
    [emergency]
    
    ; re-rewrite emergency call numbers
    
    exten => _069110,1,SetVar(EWL=110)
    exten => _069110,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    exten => _069112,1,SetVar(EWL=112)
    exten => _069112,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    exten => _06919222,1,SetVar(EWL=19222)
    exten => _06919222,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    [preselection]
    
    ; dial the following prefixes with a defined method
    
    ; university of saarland
    exten => _0681302X.,1,Macro(callwithsip,${MYMSN},${MYNAME},eric-unisaarland-intl)
    
    ; freecall
    
    exten => _0800X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    ; user-defined call-by-call
    
    exten => _010X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    ; automatic call-by-call
    
    [macro-cbc]
    
    exten => s,1,SetVar(CBC=${ARG1})
    exten => s,2,Macro(${CALLMACRO2USE},${MYMSN},${MYNAME},${SIP2USE})
    exten => s,3,Hangup
    
    [cbc-01071-international]
    
    exten => _00ZX.,1,Macro(cbc,01071)
    
    [cbc-01071-cellphones]
    
    exten => _016X.,1,Macro(cbc,01071)
    exten => _017X.,1,Macro(cbc,01071)
    
    [cbc-01071-longdistance]
    
    exten => _0ZX.,1,Macro(cbc,01071)
    
    [cbc-01019-local]
    
    exten => _069X.,1,Macro(cbc,01019)
    
    [cbc-xxl]
    
    exten => _0ZX.,1,Macro(cbc,01033)
    
    [nocbc]
    
    exten => _X.,1,Macro(cbc)
    
    [cbc]
    
    ;exten => _069X.,1,Macro(cbc)
    include => cbc-01019-local|*|mon-sat|*|*
    
    include => cbc-01071-international
    
    include => cbc-01071-cellphones
    
    include => cbc-01071-longdistance|*|mon-sat|*|*
    
    include => cbc-xxl|*|sun|*|*
    
    include => nocbc;
    
    [standard]
    
    exten => h,1,NoOp
    
    exten => t,1,Playtones(busy)
    exten => t,2,Busy
    
    [number-preselection]
    
    include => emergency
    
    include => forbidden
    
    include => preselection
    
    include => cbc 
    
    include => standard
    
    [line-preselection]
    
    include => emergency
    
    include => forbidden
    
    include => cbc
    
    include => standard
    
    [macro-numbers]
    ; ARG1 number to rewrite
    ; sets
    ; EWL (exten with local)
    ; INTL (international format)
    
    exten => s,1,GotoIf($[${ARG1:0:2} = 00]?2:5)
    exten => s,2,SetVar(EWL=${ARG1})
    exten => s,3,SetVar(INTL=+${ARG1:2})
    exten => s,4,Goto(11)
    exten => s,5,GotoIf($[${ARG1:0:1} = 0]?6:9)
    exten => s,6,SetVar(EWL=${ARG1})
    exten => s,7,SetVar(INTL=+49${ARG1:1})
    exten => s,8,Goto(11)
    exten => s,9,SetVar(EWL=069${ARG1})
    exten => s,10,SetVar(INTL=+4969${ARG1})
    exten => s,11,NoOp
    
    [macro-invalidline]
    
    exten => s,1,Answer
    exten => s,2,Wait(0.5)
    exten => s,3,Playback(privacy-incorrect)
    exten => s,4,Hangup
    
    [callout]
    
    ; use pstn line (no sip provider needed)
    
    exten => _1*X.,1,SetVar(CALLMACRO2USE=callwithpstn)
    exten => _1*X.,2,Macro(numbers,${EXTEN:2})
    exten => _1*X.,3,Goto(line-preselection,${EWL},1)
    
    ; use default sipline (MYSIP1)
    
    ; forbid CbX over sip
    exten => _2*010X.,1,Macro(invalidline)
    
    exten => _2*X.,1,SetVar(CALLMACRO2USE=callwithsip)
    exten => _2*X.,2,SetVar(SIP2USE=${MYSIP1})
    exten => _2*X.,3,Macro(numbers,${EXTEN:2})
    exten => _2*X.,4,Goto(line-preselection,${EWL},1)
    
    ; use special sipline (MYSIPx)
    
    ;forbid CbC over sip
    exten => _2Z*010X.,1,Macro(invalidline)
    
    exten => _2Z*X.,1,SetVar(CALLMACRO2USE=callwithsip)
    exten => _2Z*X.,2,GotoIf($[${EXTEN:1:1} <= ${MYNUMSIP}]?3:7)
    exten => _2Z*X.,3,SetVar(SIP2USE=${MYSIP${EXTEN:1:1}})
    exten => _2Z*X.,4,Macro(numbers,${EXTEN:3})
    exten => _2Z*X.,5,Goto(line-preselection,${EWL},1)
    exten => _2Z*X.,6,Goto(8)
    exten => _2Z*X.,7,Macro(invalidline)
    exten => _2Z*X.,8,NoOp
    
    ; choose best service by number (fallback is MYCALLMACRO)
    
    exten => _XXX.,1,SetVar(CALLMACRO2USE=${MYCALLMACRO})
    exten => _XXX.,2,SetVar(SIP2USE=${MYSIP1})
    exten => _XXX.,3,Macro(numbers,${EXTEN})
    exten => _XXX.,4,Goto(number-preselection,${EWL},1)
    
    include => sipphones
    
    ; if the number does not start with three digits -> invalid
    exten => i,1,Macro(invalidline)
    
    [isdn2out]
    
    exten => s,1,Wait(0.1)
    exten => s,2,DigitTimeout(2)
    exten => s,3,SetLanguage(de)
    exten => s,4,Macro(user${PRI_NETWORK_CID})
    
    exten => _X.,1,Wait(0.1)
    exten => _X.,2,DigitTimeout(2)
    exten => _X.,3,SetLanguage(de)
    exten => _X.,4,Macro(user${PRI_NETWORK_CID})
    exten => _X.,5,Goto(callout,${EXTEN},1)
    
    [sip2out]
    
    exten => _0X./11,1,Macro(user11111)
    exten => _0X./11,2,Goto(callout,${EXTEN:1},1)
    
    exten => _0X./22,1,Macro(user22222)
    exten => _0X./22,2,Goto(callout,${EXTEN:1},1)
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; in-coming calls (isdn)
    
    [macro-call-tk]
    
    exten => s,1,Wait(0.1)
    exten => s,2,Macro(user${MACRO_EXTEN})
    exten => s,3,SetCIDNum(${CALLERIDNUM})
    exten => s,4,Dial(${VOIPMSN}/${MYMSN},60,Ttr)
    exten => s,105,Busy
    
    [macro-call-sip]
    
    exten => s,1,Wait(0.1)
    exten => s,2,Macro(user${MACRO_EXTEN})
    exten => s,3,SetCIDNum(0${CALLERIDNUM})
    exten => s,4,Dial(${MYSIPGROUP},60,Ttr)
    exten => s,105,Busy
    
    
    [tcom-in]
    
    exten => 11111,1,Macro(call-tk)
    
    exten => 22222,1,Macro(call-sip)
    
    exten => i,1,Congestion
    
    exten => h,1,NoOp
    
    exten => t,1,Busy
    
    [macro-sip]
    
    exten => s,1,Dial(SIP/${MACRO_EXTEN},60,Ttr)
    exten => s,2,Goto(s-${DIALSTATUS},1)
    exten => s,3,Hangup
    
    exten => s-CANCEL,1,Goto(s,3)
    exten => s-ANSWER,1,NoOp
    exten => s-NOANSWER,1,Goto(s,3)
    exten => s-BUSY,1,Busy
    exten => s-BUSY,2,Hangup
    exten => s-CONGESTION,1,Congestion
    exten => s-CONGESTION,2,Hangup
    exten => s-CHANUNAVAIL,1,Playback(vm-theperson)
    exten => s-CHANUNAVAIL,2,SayDigits(${MACRO_EXTEN})
    exten => s-CHANUNAVAIL,3,Playback(vm-isunavail)
    exten => s-CHANUNAVAIL,4,Hangup
    
    [sipphones] ; or other ínternal contexts which should be call-able
    
    exten => 24,1,Macro(sip)
    exten => 24,2,Hangup
    
    exten => 32,1,Macro(sip)
    exten => 32,2,Hangup
    
    exten => h,1,Hangup
    
    

    Jetzt die einzelnen Teile:

    Code:
    [general]
    
    static=yes
    writeprotect=no
    
    [globals]
    
    VOIPMSN=Zap/g1
    TCOM=Zap/g2
    
    [default]
    
    include => sip2out
    
    Das ist alles klar. VOIPMSN ist die NT-Karte für die Isdn-Telefone/TK, TCOM ist die TE-Karte zum NTBA. Sip2out wird später verwendet um ein "Amtsgespräch" von einem Sip-Telefon aus zu führen.

    Code:
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;users ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    [macro-user11111]
    
    exten => s,1,SetVar(MYNAME=MSN11111)
    exten => s,2,SetVar(MYMSN=11111)
    exten => s,3,SetVar(MYSIPGROUP=SIP/11)
    exten => s,4,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,5,SetVar(MYNUMSIP=1)
    exten => s,6,SetVar(MYSIP1=sipgate11)
    exten => s,6,SetVar(MYSIP1=unisaarland-intl)
    
    [macro-user22222]
    
    exten => s,1,SetVar(MYNAME=MSN22222)
    exten => s,2,SetVar(MYMSN=22222)
    exten => s,3,SetVar(MYSIPGROUP=SIP/22)
    exten => s,4,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,5,SetVar(MYNUMSIP=3)
    exten => s,6,SetVar(MYSIP1=sipgate22)
    exten => s,7,SetVar(MYSIP2=unisaarland-intl)
    exten => s,8,SetVar(MYSIP3=webde22)
    
    Als nächsten definiere ich Benuzter-Macro. Diese setzen diverse Variablen: Eigener Name, eigene MSN, Sip-User falls ein anruf reinkommt, bevorzugtes call-Macro (VOIP oder PSTN) und diverse Sip-Accounts. Die Endung -intl wird später noch wichtig,

    Code:
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; outgoing calls
    
    [macro-callwithpstn]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    
    exten => s,1,SetCIDNum(${ARG1})
    exten => s,2,SetCIDName(${ARG2})
    exten => s,3,Dial(${TCOM}/${CBC}${EWL},60,Ttr)
    exten => s,104,GotoIf($[${DIALSTATUS} = CONGESTION]?109:110)
    exten => s,105,Dial(${TCOM}/${EWL},60,Ttr)
    exten => s,106,Playtones(busy);
    exten => s,107,Busy
    
    [macro-callwithsip]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    ; ARG3 = sipprovider
    
    exten => s,1,SetCIDNum(${ARG1})
    exten => s,2,SetCIDName(${ARG2})
    exten => s,3,SetVar(NUMBER2DIAL=${EWL})
    exten => s,4,GotoIf($[${ARG3:-5} = -intl]?5:6)
    exten => s,5,SetVar(NUMBER2DIAL=${INTL})
    exten => s,6,Dial(SIP/${NUMBER2DIAL}@${ARG3},60,Ttr)
    exten => s,107,GotoIf($[${DIALSTATUS} = CONGESTION]?108:109) 
    exten => s,108,Macro(callwithpstn,${ARG1},${ARG2})
    exten => s,109,Playtones(busy);
    exten => s,110,Busy
    
    Hier wurden die zwei Call-Macros definiert. Zuerst wird festgelegt mit welcher Absender-Kennung. Dann ausgewählt welche Nummer (evtl. ist ein CbC-Anbieter eingetragen, oder aber die Nummer muss im internationalen Format vorliegen? Nämlich genau dann, wenn ein Sip-Account auf -intl endet.
    Diverse Variablen werden erst später gesetzt. Falls ein CbC oder Sip-Anbieter congested ist, wird auf PSTN zurückgefallen.

    Jetzt wird es etwas durcheinander, aber nur wer nicht bis zum Schluss liest:
    Code:
    [macro-notallowed]
    
    exten => s,1,Answer
    exten => s,2,Wait(0.5)
    exten => s,3,Playback(ss-noservice)
    exten => s,4,Hangup
    
    [forbidden]
    
    ; 019x
    exten => _019X.,1,Macro(notallowed)
    
    ; 0900
    exten => _0900X.,1,Macro(notallowed)
    
    ; EMSAT
    exten => _0088X.,1,Macro(notallowed)
    
    [emergency]
    
    ; re-rewrite emergency call numbers
    
    exten => _069110,1,SetVar(EWL=110)
    exten => _069110,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    exten => _069112,1,SetVar(EWL=112)
    exten => _069112,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    exten => _06919222,1,SetVar(EWL=19222)
    exten => _06919222,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    [preselection]
    
    ; dial the following prefixes with a defined method
    
    ; university of saarland
    exten => _0681302X.,1,Macro(callwithsip,${MYMSN},${MYNAME},eric-unisaarland-intl)
    
    ; freecall
    
    exten => _0800X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    ; user-defined call-by-call
    
    exten => _010X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    ; automatic call-by-call
    
    Wenn später (weiter unten) ein Nummer gewählt wurde, wird jetzt getestet, ob diese verboten ist (forbidden). Dann wird ein entsprechende Macro gestartet. Oder aber, ob es ein Notruf ist (110, 112, 19222). Dann geht das Gespräch auf jeden Fall über die Telekom. Oder ob diese Wahlregel über VOIP oder ISDN geroutet werden soll. Zum Beispiel werden alle Anrufe an die Uni Saarland über einen Uni-Saarland Sipaccount geroutet, oder alle 0800er Nummern immer über ISDN. Achso: Wenn jemand selbst einen Call-by-Call Anbieter mitwählt (010x), dann geht das Gespräch auch über ISDN raus, da die Sip-Provider mit 010x nichts anfangen können.

    Achso: Im Grunde hat die Fritzboxfon auch dieses Verhalten. Aber hier kann man noch so witzige Sachen machen, wir nummern umschreiben, zum Beispiel weil ein Sip-Provider keine ENUM-Auflösung macht, man selbst aber einen entsprechende SipgateNummer des Anzurufenden kennt.

    Jetzt wird es witzig: Call-By-Call
    Für alle Nummern wird vorläufig ein bester CbC-Provider bestimmt - auch wenn das Gespräche später über VoIP geht. Aber sicher ist sicher. Die Liste hier ist sehr einfach. Die beachten momentan den Sonntags-XXL Tarif der Telekom und ansonsten diverse Dumping-Preise, die es momentan gibt (oder auch schon nicht mehr). Unterschieden wird nach local (bei mir jetzt als Beispiel 069), international (00x), long-distance (alles was nicht 0xxx, aber nicht 069) und Handies.
    Code:
    [macro-cbc]
    
    exten => s,1,SetVar(CBC=${ARG1})
    exten => s,2,Macro(${CALLMACRO2USE},${MYMSN},${MYNAME},${SIP2USE})
    exten => s,3,Hangup
    
    [cbc-01071-international]
    
    exten => _00ZX.,1,Macro(cbc,01071)
    
    [cbc-01071-cellphones]
    
    exten => _016X.,1,Macro(cbc,01071)
    exten => _017X.,1,Macro(cbc,01071)
    
    [cbc-01071-longdistance]
    
    exten => _0ZX.,1,Macro(cbc,01071)
    
    [cbc-01019-local]
    
    exten => _069X.,1,Macro(cbc,01019)
    
    [cbc-xxl]
    
    exten => _0ZX.,1,Macro(cbc,01033)
    
    [nocbc]
    
    exten => _X.,1,Macro(cbc)
    
    [cbc]
    
    ;exten => _069X.,1,Macro(cbc)
    include => cbc-01019-local|*|mon-sat|*|*
    
    include => cbc-01071-international
    
    include => cbc-01071-cellphones
    
    include => cbc-01071-longdistance|*|mon-sat|*|*
    
    include => cbc-xxl|*|sun|*|*
    
    include => nocbc;
    
    Wichtig ist die Reihenfolge. Sonst läuft alles in nocbc. Achtung!

    So jetzt kommen wir langsam zum Kern:
    Code:
    [standard]
    
    exten => h,1,NoOp
    
    exten => t,1,Playtones(busy)
    exten => t,2,Busy
    
    [number-preselection]
    
    include => emergency
    
    include => forbidden
    
    include => preselection
    
    include => cbc 
    
    include => standard
    
    [line-preselection]
    
    include => emergency
    
    include => forbidden
    
    include => cbc
    
    include => standard
    
    
    Der Number-Preselection Kontext unterscheidet sich vom line-preselection nur um eine Zeile. Nämlich dem include von oben beschriebenen preselection Kontext. Wenn man nämlich gleich (einen Moment noch) bewusst eine bestimmt Leitung wählt (ISDN oder SIPx) dann braucht man kein preselection.

    Noch zwei Makros:
    Code:
    [macro-numbers]
    ; ARG1 number to rewrite
    ; sets
    ; EWL (exten with local)
    ; INTL (international format)
    
    exten => s,1,GotoIf($[${ARG1:0:2} = 00]?2:5)
    exten => s,2,SetVar(EWL=${ARG1})
    exten => s,3,SetVar(INTL=+${ARG1:2})
    exten => s,4,Goto(11)
    exten => s,5,GotoIf($[${ARG1:0:1} = 0]?6:9)
    exten => s,6,SetVar(EWL=${ARG1})
    exten => s,7,SetVar(INTL=+49${ARG1:1})
    exten => s,8,Goto(11)
    exten => s,9,SetVar(EWL=069${ARG1})
    exten => s,10,SetVar(INTL=+4969${ARG1})
    exten => s,11,NoOp
    
    [macro-invalidline]
    
    exten => s,1,Answer
    exten => s,2,Wait(0.5)
    exten => s,3,Playback(privacy-incorrect)
    exten => s,4,Hangup
    
    Letzteres sagt dem Benutzer nur, dass er wohl eine falsche Leitung gewählt hat. Das erste schreibt die gewählte Nummer in zwei Formate: International mit +xx am Anfang, und eine wie man es am z.B. Handy wählen würde (ausser man wählt dort intl). Die Variablen heisen INTL und EWL. Wie ihr seht ,wird auch eine Ortzvorwahl automatisch ergänzt.

    Was passiert wenn jetzt * eine "Wahl" reinbekommt:
    Code:
    [callout]
    
    ; use pstn line (no sip provider needed)
    
    exten => _1*X.,1,SetVar(CALLMACRO2USE=callwithpstn)
    exten => _1*X.,2,Macro(numbers,${EXTEN:2})
    exten => _1*X.,3,Goto(line-preselection,${EWL},1)
    
    ; use default sipline (MYSIP1)
    
    ; forbid CbC over sip
    exten => _2*010X.,1,Macro(invalidline)
    
    exten => _2*X.,1,SetVar(CALLMACRO2USE=callwithsip)
    exten => _2*X.,2,SetVar(SIP2USE=${MYSIP1})
    exten => _2*X.,3,Macro(numbers,${EXTEN:2})
    exten => _2*X.,4,Goto(line-preselection,${EWL},1)
    
    ; use special sipline (MYSIPx)
    
    ; forbid CbC over sip
    exten => _2Z*010X.,1,Macro(invalidline)
    
    exten => _2Z*X.,1,SetVar(CALLMACRO2USE=callwithsip)
    exten => _2Z*X.,2,GotoIf($[${EXTEN:1:1} <= ${MYNUMSIP}]?3:7)
    exten => _2Z*X.,3,SetVar(SIP2USE=${MYSIP${EXTEN:1:1}})
    exten => _2Z*X.,4,Macro(numbers,${EXTEN:3})
    exten => _2Z*X.,5,Goto(line-preselection,${EWL},1)
    exten => _2Z*X.,6,Goto(8)
    exten => _2Z*X.,7,Macro(invalidline)
    exten => _2Z*X.,8,NoOp
    
    ; choose best service by number (fallback is MYCALLMACRO)
    
    exten => _XXX.,1,SetVar(CALLMACRO2USE=${MYCALLMACRO})
    exten => _XXX.,2,SetVar(SIP2USE=${MYSIP1})
    exten => _XXX.,3,Macro(numbers,${EXTEN})
    exten => _XXX.,4,Goto(number-preselection,${EWL},1)
    
    ; if the number does not start with three digits -> invalid
    exten => i,1,Macro(invalidline)
    
    Ganz einfach. Wenn die Nummer mit 1* beginnt, will ich über ISDN raustelefonieren. Wenn sie mit 2* beginnt soll der Anruf über den Default (1) Sipprovider gehen (und wie man mit etwas Code-anschauen erkennen kann ist das Benutzerabhängig, d.h. für jede MSN kann ich entsprechende Accounts einrichten). Mit 2Z* kann man einen bestimmten Sip-Provider wählen, der aber auch exitsieren muss.

    Ansonsten geht das ganze nach Number-Preselection und die kümmert sich um eine nette und vor allem automatische Anwahl.


    Fehlt nur noch eins:
    Wie kommt man in den den callout Kontext? So:
    Code:
    [isdn2out]
    
    exten => s,1,Wait(0.1)
    exten => s,2,DigitTimeout(2)
    exten => s,3,SetLanguage(de)
    exten => s,4,Macro(user${PRI_NETWORK_CID})
    
    exten => _X.,1,Wait(0.1)
    exten => _X.,2,DigitTimeout(2)
    exten => _X.,3,SetLanguage(de)
    exten => _X.,4,Macro(user${PRI_NETWORK_CID})
    exten => _X.,5,Goto(callout,${EXTEN},1)
    
    [sip2out]
    
    exten => _X./11,1,Macro(user11111)
    exten => _X./11,2,Goto(callout,${EXTEN:1},1)
    
    exten => _X./22,1,Macro(user22222)
    exten => _X./22,2,Goto(callout,${EXTEN:1},1)
    
    Je nachdem ob man eine TK oder direkt ein Telefon dranhängt, will man im sip2out auch zunächst eine 0 wählen. Die kann man vor X. einfügen.

    Und wer interne Sip-phones verwenden will ... muss aber in sip.conf konfiguriert sein. Man kann natuerlich auch andere Kontexte einbinden. Spielt mal rum...
    Code:
    
    [macro-sip]
    
    exten => s,1,Dial(SIP/${MACRO_EXTEN},60,Ttr)
    exten => s,2,Goto(s-${DIALSTATUS},1)
    exten => s,3,Hangup
    
    exten => s-CANCEL,1,Goto(s,3)
    exten => s-ANSWER,1,NoOp
    exten => s-NOANSWER,1,Goto(s,3)
    exten => s-BUSY,1,Busy
    exten => s-BUSY,2,Hangup
    exten => s-CONGESTION,1,Congestion
    exten => s-CONGESTION,2,Hangup
    exten => s-CHANUNAVAIL,1,Playback(vm-theperson)
    exten => s-CHANUNAVAIL,2,SayDigits(${MACRO_EXTEN})
    exten => s-CHANUNAVAIL,3,Playback(vm-isunavail)
    exten => s-CHANUNAVAIL,4,Hangup
    
    [sipphones] ; or other ínternal contexts which should be call-able
    
    exten => 24,1,Macro(sip)
    exten => 24,2,Hangup
    
    exten => 32,1,Macro(sip)
    exten => 32,2,Hangup
    
    exten => h,1,Hangup
    
    
    allesOK!

    p.s. Tipp und Rechtschreibfehler, verbessere ich aufgrund der Länge des Texte nicht!
     
  2. Christoph

    Christoph IPPF-Promi

    Registriert seit:
    20 Feb. 2004
    Beiträge:
    6,229
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
    Ort:
    Düsseldorf
    :wow:

    Prima, vielen Dank für Deine Arbeit!

    2 Bitten:

    - ändere doch die Betreffzeile ein wenig, damit daraus klarer wird, worum es hier geht
    - vielleicht auch was für unsere "VoIP-FAQ? :)
     
  3. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Jo, habe es geändert!
     
  4. realgoth

    realgoth Neuer User

    Registriert seit:
    24 Mai 2004
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @allesOK: Kannst Du ein Patchfile für die CALLINGNUM erstellen oder den Kontext anzeigen. In welche Zeile ich das nun genau einfügen muss (RC4) weiss ich irgendwie nämlich nicht...

    Reicht die RC4 eigentlich für die Probleme aus dem Thread "NT-Modus ohne Wählton"?

    Und wenn nicht: Kann ich einfach mit
    #wget [bristuff-Aktuell]
    #tar xzfv bristuff-0.1.0...
    #cd bri...
    #./install.sh
    "drüberinstallieren" ohne das die Confs kaputtgehen? (Nicht dass ich das nicht bestimmt irgendwo rauskriegen könnte, ein "ja" oder "nein: Sichere alles und spiel es zurück" von Euch ist schneller als das Suchen meinerseits).
     
  5. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja Patch hängt bei (für 0.1.0rc4a von bristuff)

    Die Konfs gehen nicht kaputt solange du nur make und make install im asterisk Verzeichnis aufrufst.
     

    Anhänge:

  6. bjunix

    bjunix Neuer User

    Registriert seit:
    18 Apr. 2004
    Beiträge:
    192
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    und in welche zeile muss der patch jetzt rein?

    edit:

    ok habs gefunden :

     
  7. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Da benutzt du das nette Linux-Programm patch, welches das diff-file an der richtigen Stelle reinflickt.
     
  8. Max

    Max Neuer User

    Registriert seit:
    27 Sep. 2004
    Beiträge:
    171
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Kleine Problemchen...

    Hallo,

    vorweg VIELEN DANK an 'allesOK'!! - Ich verwende Deine extensions.conf weitgehend. Sie ist wirklich sehr gut ausgearbeitet!!

    An der extensions.conf von 'allesOK' habe ich ein paar Änderungen vorgenommen:

    1) Ich benutze eine CAPI und eine HFC Karte (nicht zwei HFC Karten)
    2) Ich hab ein neues Macro 'callinginhouse' ingefügt, was es mir erlaubt im Haus kostenlos zu telefonieren.

    Ausserdem hab ich noch die CbC-Sektion rausgelöscht (Sorry - SUPER Idee, nur leider bin ich bei Arcor....), etc.


    Mein Problem ist nun folgendes: Irgendwie scheinen die ISDN-Telefone, die an der HFC Karte hängen nicht immer alles mitzubekommen:

    1) Bekomme ich einen Anruf, und nehme diesen an einem Telefon entgegen, so klingeln die anderen Telefone weiter!? - Das geht solange, bis die Telefone nochmals angerufen werden und aufgelegt wird.
    2) Rufe ich mit einem ISDN-Telefon zum Beispiel ein Handy an und werde weggedrückt, so tutet es im Höhrer weiter, als würde es immer noch klingeln.
    3) Gleiches passiert, wenn die Nummer noch gar nicht fertig gewählt wurde. Ich wähle also 12345 und warte und schon klingelt es, obwohl ich eigentlich noch weiter hätte wählen müsen.


    Ich hoffe, ich könnte mir mit meinen Problemen weiterhelfen!!??

    Code:
    
    [general]
    static=yes
    writeprotect=no
    
    [globals]
    VOIPMSN=Zap/g1
    TCOM=CAPI
    
    [default]
    include => isdn2out
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; users ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ; => FAX DEVICE <=
    [macro-user12345638]
    exten => s,1,SetVar(MYNAME=MSN12345638)
    exten => s,2,SetVar(MYMSN=12345638)
    exten => s,3,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,4,SetVar(MYNUMSIP=1)
    exten => s,5,SetVar(MYSIP1=web)
    
    ; => MAIN LINE <=
    [macro-user12345637]
    exten => s,1,SetVar(MYNAME=MSN12345637)
    exten => s,2,SetVar(MYMSN=12345637)
    exten => s,3,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,4,SetVar(MYNUMSIP=1)
    exten => s,5,SetVar(MYSIP1=web)
    
    ; => MAX LINE <=
    [macro-user12345415]
    exten => s,1,SetVar(MYNAME=MSN12345415)
    exten => s,2,SetVar(MYMSN=12345415)
    exten => s,3,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,4,SetVar(MYNUMSIP=1)
    exten => s,5,SetVar(MYSIP1=web)
    
    ; => SUPPORT LINE <=
    [macro-user12345417]
    exten => s,1,SetVar(MYNAME=MSN12345417)
    exten => s,2,SetVar(MYMSN=12345417)
    exten => s,3,SetVar(MYCALLMACRO=callwithpstn)
    exten => s,4,SetVar(MYNUMSIP=1)
    exten => s,5,SetVar(MYSIP1=web)
    
    ; => WEB.DE <=
    [macro-userwebdeaccount]
    exten => s,1,SetVar(MYNAME=MSN12345415)
    exten => s,2,SetVar(MYMSN=12345415)
    exten => s,3,SetVar(MYCALLMACRO=callwithsip)
    exten => s,4,SetVar(MYNUMSIP=1)
    exten => s,5,SetVar(MYSIP1=web)
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; external ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; outgoing calls ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    [macro-callinhouse]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    ;exten => s,2,Macro(user${EWL})
    exten => s,1,SetCIDNum(${MYMSN})
    exten => s,2,SetCIDName(${MYNAME})
    exten => s,3,Dial(Zap/1/${EWL},60,tT)
    exten => s,4,Busy
    exten => s,5,Hangup
    
    [macro-callwithpstn]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    exten => s,1,SetCIDNum(${ARG1})
    exten => s,2,SetCIDName(${ARG2})
    exten => s,3,Dial(${TCOM}/${MYMSN}:b${EWL},60,tr)
    exten => s,4,Congestion
    exten => s,5,Busy
    exten => s,6,Hangup
    
    [macro-callwithsip]
    ; ARG1 = calleridnum
    ; ARG2 = calleridname
    ; ARG3 = sipprovider
    exten => s,1,SetCIDNum(${ARG1})
    exten => s,2,SetCIDName(${ARG2})
    exten => s,3,SetVar(NUMBER2DIAL=${EWL})
    exten => s,4,GotoIf($[${ARG3:-5} = -intl]?5:6)
    exten => s,5,SetVar(NUMBER2DIAL=${INTL})
    exten => s,6,Dial(SIP/${NUMBER2DIAL}@${ARG3},60,tT)
    exten => s,107,GotoIf($[${DIALSTATUS} = CONGESTION]?108:109)
    exten => s,108,Macro(callwithpstn,${ARG1},${ARG2})
    exten => s,109,Playtones(busy);
    exten => s,110,Busy
    
    [macro-notallowed]
    exten => s,1,Answer
    exten => s,2,Wait(0.5)
    exten => s,3,Playback(ss-noservice)
    exten => s,4,Hangup
    
    
    [forbidden]
    ; 019x
    exten => _019X.,1,Macro(notallowed)
    
    ; 0900
    exten => _0900X.,1,Macro(notallowed)
    
    ; EMSAT
    exten => _0088X.,1,Macro(notallowed)
    
    [emergency]
    ; re-rewrite emergency call numbers
    exten => _089110,1,SetVar(EWL=110)
    exten => _089110,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    exten => _089112,1,SetVar(EWL=112)
    exten => _089112,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    exten => _08919222,1,SetVar(EWL=19222)
    exten => _08919222,2,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    
    [preselection-xxl}
    exten => _X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    
    [preselection]
    ; dial the following prefixes with a defined method
    
    ; university of saarland
    ;exten => _0681302X.,1,Macro(callwithsip,${MYMSN},${MYNAME},eric-unisaarland-intl)
    
    ; house calls
    exten => _08912345637,1,Macro(callinhouse,${MYMSN},${MYNAME});
    exten => _08912345415,1,Macro(callinhouse,${MYMSN},${MYNAME});
    exten => _08912345417,1,Macro(callinhouse,${MYMSN},${MYNAME});
    
    ; web.de
    exten => _02222948X.,1,Macro(callwithsip,${MYMSN},${MYNAME},web)
    
    ; freecall
    exten => _0800X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    ; user-defined call-by-call
    ;exten => _089X.,1,Macro(callwithpstn,${MYMSN},${MYNAME})
    
    
    exten => s,1,SetVar(CBC=${ARG1})
    exten => s,2,Macro(${CALLMACRO2USE},${MYMSN},${MYNAME},${SIP2USE})
    exten => s,3,Hangup
    
    [macro-cbc]
    exten => s,1,SetVar(CBC=${ARG1})
    exten => s,2,Macro(${CALLMACRO2USE},${MYMSN},${MYNAME},${SIP2USE})
    exten => s,3,Hangup
    
    [cbc]
    include => nocbc
    
    [nocbc]
    exten => _X.,1,Macro(cbc)
    
    [standard]
    exten => h,1,NoOp
    exten => t,1,Playtones(busy)
    exten => t,2,Busy
    
    [number-preselection]
    include => emergency
    include => forbidden
    include => preselection-xxl|*|sun|*|*
    include => preselection
    include => cbc
    include => standard
    
    [line-preselection]
    include => emergency
    include => forbidden
    include => cbc
    include => standard
    
    [macro-numbers]
    ; ARG1 number to rewrite
    ; sets
    ; EWL (exten with local)
    ; INTL (international format)
    exten => s,1,GotoIf($[${ARG1:0:2} = 00]?2:5)
    exten => s,2,SetVar(EWL=${ARG1})
    exten => s,3,SetVar(INTL=+${ARG1:2})
    exten => s,4,Goto(11)
    exten => s,5,GotoIf($[${ARG1:0:1} = 0]?6:9)
    exten => s,6,SetVar(EWL=${ARG1})
    exten => s,7,SetVar(INTL=+49${ARG1:1})
    exten => s,8,Goto(11)
    exten => s,9,SetVar(EWL=089${ARG1})
    exten => s,10,SetVar(INTL=+4989${ARG1})
    exten => s,11,NoOp
    
    [macro-invalidline]
    exten => s,1,Answer
    exten => s,2,Wait(0.5)
    exten => s,3,Playback(privacy-incorrect)
    exten => s,4,Hangup
    
    [callout]
    ; use pstn line (no sip provider needed)
    exten => _1*.,1,SetVar(CALLMACRO2USE=callwithpstn)
    exten => _1*.,2,Macro(numbers,${EXTEN:2})
    exten => _1*.,3,Goto(line-preselection,${EWL},1)
    
    ; use default sipline (MYSIP1)
    exten => _8*X.,1,SetVar(CALLMACRO2USE=callwithsip)
    exten => _8*X.,2,SetVar(SIP2USE=${MYSIP1})
    exten => _8*X.,3,Macro(numbers,${EXTEN:2})
    exten => _8*X.,4,Goto(line-preselection,${EWL},1)
    
    ; use special sipline (MYSIPx)
    exten => _9Z*X.,1,SetVar(CALLMACRO2USE=callwithsip)
    exten => _9Z*X.,2,GotoIf($[${EXTEN:1:1} <= ${MYNUMSIP}]?3:7)
    exten => _9Z*X.,3,SetVar(SIP2USE=${MYSIP${EXTEN:1:1}})
    exten => _9Z*X.,4,Macro(numbers,${EXTEN:3})
    exten => _9Z*X.,5,Goto(line-preselection,${EWL},1)
    exten => _9Z*X.,6,Goto(8)
    exten => _9Z*X.,7,Macro(invalidline)
    exten => _9Z*X.,8,NoOp
    
    ; choose best service by number (fallback is MYCALLMACRO)
    exten => _XXX.,1,SetVar(CALLMACRO2USE=${MYCALLMACRO})
    exten => _XXX.,2,SetVar(SIP2USE=${MYSIP1})
    exten => _XXX.,3,Macro(numbers,${EXTEN})
    exten => _XXX.,4,Goto(number-preselection,${EWL},1)
    
    ;include => sipphones
    
    ; if the number does not start with three digits -> invalid
    exten => i,1,Macro(invalidline)
    
    [isdn2out]
    exten => s,1,Wait(0.1)
    exten => s,2,DigitTimeout(2)
    exten => s,3,SetLanguage(de)
    exten => s,4,Macro(user${PRI_NETWORK_CID})
    
    exten => _X.,1,Wait(0.1)
    exten => _X.,2,DigitTimeout(2)
    exten => _X.,3,SetLanguage(de)
    exten => _X.,4,Macro(user${PRI_NETWORK_CID}) 
    exten => _X.,5,Goto(callout,${EXTEN},1)
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; in-coming calls (isdn) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    [macro-call-sip]
    exten => s,1,Wait(0.1)
    exten => s,2,Macro(user${MACRO_EXTEN})
    exten => s,3,SetCIDNum(${CALLERIDNUM:1})
    exten => s,4,Dial(Zap/1/${MYMSN},60,tr)
    exten => s,5,Congestion
    exten => s,6,Busy
    exten => s,7,Hangup
    
    [tcom-in]
    exten => 12345637,1,Macro(call-sip)
    exten => 12345415,1,Macro(call-sip)
    exten => 12345417,1,Macro(call-sip)
    
    exten => i,1,Congestion
    exten => h,1,NoOp
    exten => t,1,Busy
    
    [sip-in]
    exten => webdeaccount,1,Macro(call-sip)
    
    

    Vielen Dank für eure Hilfe!!

    Mit freundlichen Grüßen,
    Max
     
  9. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke für's Lob! Sowas freut immer ;-)

    Habe mittlerweile bei mir das 'r' in den Dial-Parameter weg gelassen. Damit bekomme ich wirklich das, was das Amt sagt. Vielleicht hilft das bei den Problemen 1-3 weiter?
     
  10. Max

    Max Neuer User

    Registriert seit:
    27 Sep. 2004
    Beiträge:
    171
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo 'allesOK',

    VIELEN DANK für Deinen Tipp! - Es lang an falschen Dial-Parametern. Sag mal, gibt es im Netz irgendwo eine nützliche Übersicht über alle brauchbaren Dial-Parametern (CAPI, HFC)?

    Schöne Grüße,
    Max
     
  11. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    bei voip-info.org (such mal nach "Dial cmd")
     
  12. alf

    alf Neuer User

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo allesOK und ihr anderen,

    also auch erstmal von mir ein Super fettes Dankeschön.
    Habe nach einigen anfänglichen Schwierigkeiten was ähnliches gebaut, allerdings aus Unwissenheit sehr statisch und ohne Makros.

    Die Makro-Lösung ist auf jeden Fall 1000 mal besser und skalierbarer. Da ich mit den Makros so meine Probleme habe, wollte ich fragen ob Du dieser Anleitung nicht noch die komplette zapata.conf, sowie die sip.conf hinzufügen kannst, da es sehr unübersichtlich ist dies über die anderen verlinkten Threads herauszubekommen und auch in den einzelnen Beispielen mit anderen Kontexten gearbeitet wurde.

    Das würde mir auf jeden Fall sehr viel weiterhelfen und bestimmt auch man anderem. Ich muss zugegben, dass man selbst nach einem Monat Beschäftigungstherapie mit Asterisk längst nicht alle Möglichkeiten zu erschliessen sind.

    Nochmals besten Dank,

    alf.
     
  13. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Werde ich in Kürze nachholen, ok?
     
  14. alf

    alf Neuer User

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi allesOK,

    hört sich klasse an, kann es kaum erwarten :)
    Kennt Ihr das, man liegt im Bett muss schlafen, aber es geht einem immer wieder ein und das selbe durch den Kopf - der Dialplan. Dann rennt man schlaftrunken zum Rechner und danach frustriert zurück ins Bett, wenn es nicht geklappt hat wie man es wollte. :wink:

    So geht es mir seit geraumer Zeit, und im Büro wird man dann gefragt ob man krank sei. Ja kann man nur erwiedern, ich hab "Asterisk".

    Man kann den Frust förmlich lesen. In diesem Sinne, ohne aufdringlich zu wirken, je eher desto besser, sonst wird es noch ein zusätzlich ein Beziehungsdrama.

    Alf

    P.s. Warum hassen 95% aller Frauen Computer ?
    P.P.s. Suche Weibchen zugehörig zur 5 % Randgruppe zwecks Zukunftsplanung... :lol:
     
  15. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    zapata.conf findet sich hier


    Die sip.conf hier

    Code:
    [general]
    language=de
    context=voip-in                 ; Context to be used in extensions
    port=5060                       ; Port to bind to
    bindaddr=0.0.0.0                ; Address to bind SIP channel to
    
    ;srvlookup=yes                  ; Enable DNS SRV lookups on outbound calls
    ;pedantic=yes                   ; Enable slow, pedantic checking for Pingtel
    ;tos=lowdelay                   ; IP QoS parameter, either keyword or value
    ;maxexpirey=3600                ; Max length of incoming registration we allow
    ;defaultexpirey=120             ; Dflt length of incoming/outoing registration
    ;defaultexpirey=160
    ;notifymimetype=text/plain      ; Allow overriding of mime type in NOTIFY
    ;videosupport=yes               ; Turn on support for SIP video
    
    disallow=all                    ; Disallow all codecs
    allow=ulaw
    allow=alaw
    allow=gsm
    
    localnet = 198.168.250.0/255.255.255.0
    externip = mydomain.dyndns.org
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Accounts ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    
    ;sipgate
    register => nnnnn:ppppp@sipgate.de/11111
    
    register => nnnnn22:ppppp22@sipgate.de/22222
    
    ;uni-saarland.de
    register => nnnnnn:pppppp@stud.uni-saarland.de/22222
    
    [sipgate11]
    type=friend
    username=nnnnn
    secret=pppppp
    host=sipgate.de
    fromuser=nnnnnn
    fromdomain=sipgate.de
    qualify=yes
    nat=no
    canreinvite=no
    insecure=very
    
    [sipgate22]
    type=friend
    username=nnnnn22
    secret=pppppp11
    host=sipgate.de
    fromuser=nnnnn22
    fromdomain=sipgate.de
    qualify=yes
    nat=no
    canreinvite=no
    insecure=very
    
    ; intl indicates to use the internation number format
    [unisaarland-intl]
    type=friend
    username=nnnnnn
    secret=pppppp
    host=iptel.rz.uni-saarland.de
    fromuser=nnnnnnn
    fromdomain=stud.uni-saarland.de
    qualify=yes
    nat=no
    canreinvite=no
    insecure=very
    
    ; webde hab ich nicht mehr parat ist aber ähnlich
    
     
  16. alf

    alf Neuer User

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    So, hallo allesOK!

    also erstmal besten Dank, hat soweit auch geholfen. Allerdings scheint bei mir irgendein Problem im Zusammenhang mit der Karte im TE mode zu sein. Gebe ich meine Festnetz MSN in den Extensions ein, kann ich nach Annahme an jedem Telelfon, egal ob ISDN oder VoIP das Telefonat führen. Heisst für mich erstmal, dass Die TE Mode Karte auch alles macht, was sie machen soll.
    Sobald ich es allerdings umgegehrt versuche, also über z.B. die Null raus, funktioniert das nicht. Das Telefon an der NT Mode Karte, schreibt dann nur Teilnehmer nicht erreichbar und das wars.

    Und Asterisk ist Unable to open a channel of type ZAP. Kann man ja im Forum oft genug lesen.
    Selbst wenn ich komplett die Configs von Dir nehme und an meine Begebenheiten anpasse - selbes Resultat. Raus geht nix.

    Hmmmm irgendwelche Ideen ?

    Ich benutze Asterisk 1.0.2 mit dem aktuellsten Bri-Stuff 0.2.0-rc2 unter Gentoo. Alles wunderbar ohne Fehler compiled... dmesg gibt auch aus, das beide Karten der Konfiguration nach richtig initialisiert sind.

    Ansonsten werde ich auch mal weiter probieren, aber irgendwie ist das unlogisch, warum geht es rein und nicht raus ?

    alf
     
  17. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hast du mal "set verbose 5" auf dem CLI gemacht und geschaut, wo er genau hängen bleibt.

    Achso: Es scheint noch einen Fehler zu geben bzgl CbC. Wenn da ein Anbieter nicht "anbieten" kann (sprich alle Leitungen besetzt sind) bleibt er auch (noch) bei mir hängen. Muss dann immer 01033 von Hand wählen. Daran arbeite ich noch ....
     
  18. alf

    alf Neuer User

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich werds nach der Arbeit mal ausprobieren und poste dann das Ergebnis.

    Davon das die ISDN Karte im TE mode keine Hardware Macke hat, kann man auch ausgehen, da mit einer Ersatzkarte das Resultat genauso ist ... :(

    alf.

    (Bis jetzt stand es auf 4, vielleicht bringts die 5...)
     
  19. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Also die 5 wird den Fehler nicht beheben, aber dir vielleicht exakt zeigen, wo der * hängen bleibt.
     
  20. alf

    alf Neuer User

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    :) War schon klar, dass das nur die Debug mesg. sind.. ..

    Bin leider gerade erst rein, versuche mal ein paar Daten zu sammeln ...

    alf.