Festnetz-Flat und zwei SIP-Provider

Cannabisman

Neuer User
Mitglied seit
5 Apr 2005
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo,

bisher habe ich zwei sip-accounts benutzt - "sipgate" und "qsc ipfonie", wobei qsc nur für eingehende anrufe und als fallback genutzt wurde. Nun habe ich bei qsc jedoch eine Festnetz-Flatrate und möchte diese auch nutzen.
Für alle ausgehenden Festnetzgespräche soll jetzt also qsc benutzt werden und sipgate für den Rest (Mobilfunk, Ausland...).
Wie bringe ich dem asterisk das denn bei?

Zur Zeit sieht die config für ein Telefon für ausgehende Gespräche so aus:

(772 = MSN des Tel.)
Code:
[772]
;;; Phone 772 ;;;
; Outgoing calls over SIP
exten => _x.,1,Set(LANGUAGE()=de)
exten => _x./772,2,Ringing()
exten => _x./772,3,Set(CALLERID(number)=XXSIPIDXX)
exten => _x./XXSIPIDXX,4,Set(CALLERID(name)=XXMYNAMEXX)
exten => _x./XXSIPIDXX,5,GotoIf($["${EXTEN:0:1}" = "0"]?7)
exten => _x./XXSIPIDXX,6,Set(areaCode=030)
exten => _x./XXSIPIDXX,7,Dial(SIP/${areaCode}${EXTEN}@sipgate,120,TW)
exten => _x./XXSIPIDXX,8,Dial(SIP/${areaCode}${EXTEN}@qsc,120,TW)
exten => _x./XXSIPIDXX,9,Goto(dialStates,${DIALSTATUS},1)

Astersik läuft heir auf eisfair und es gibt dort keine Möglichkeit sowas über das Konfigurationsmenü einzustellen. Habe leider keinen Plan was ich da jetzt in der extensions.conf, sip.conf etc. ändern muss, damit das so läuft wie ich es mir vorstelle.

Könnte mir da evtl. jemand behilflich sein?


Gruß
canna
 
Wie bringe ich dem asterisk das denn bei?

Du bist sicher, dass dein Dialplan funktioniert???

Wenn Zeile 5 wahr ist, was für einen Area-Code verwendest du dann?

Zur eigentlichen Frage:
Eigentlich ist es sehr einfach.

Du musst den Fall Rufnummer beginnt mit 00 und Rufnummer beginnt mit 01 besonders behandeln, dazu noch 0900. 0900 geht nicht via Voip. Ob 0700 via qsc geht, musst du nachschauen und erforderlichenfalls als Sonderfall zu Sipgate schicken. Der Rest geht zu qsc.
Eventuell musst du noch 0049 und 010 besonders behandeln, falls das mal gewählt werden sollte.

Also hast du den Fall

exten => _00ZX.,1... ;internat. Gespräche -> Sipgate
exten => _0049.,1.. ;deutsche Gespräche mit internat. Vorwahl -> weiter auswerten
exten => _0NXX.,1.. ;deutsche Gespräche die mit 02 bis 09 beginnen -> qsc
exten => _01XX.,1.. ;deutsche Gespräche die mit 01 beginnen -> Sipgate
exten => _0700.,1.. ;Sonderfall 0700 -> Sipgate
exten => _0900.,1,Hangup ;Sonderfall 0900, verbieten
exten => _010X.,1.. ;Sonderfall CallbyCall-Vorwahl -> weiter auswerten
 
Klingt alles einleuchtend. Der areacode ist 030, also die Vorwahl von Berlin. Auf diese weise muss ich keine Vorwahl wählen, wenn ich innerhalb von Berlin telefoniere.

Ich weiß jetzt leider nur nich, wie ich das in die vorhandene config einpflegen soll. Die config, die ich jetzt auf meinem eisfair-server hab wurde von einem Konfigurationsscript erstellt. Daher habe ich nicht so wirklich einen Plan von dieser Materie. Vom Prinzip her habe ich das ja verstanden, aber wie setzt man jetzt sowas um?

Könntest du mir da evtl. ein Beispiel geben, wie da vorzugehen ist?

Danke!


Gruß
canna
 
So, ich hab das jetzt mal selber versucht und bei Handy und Ortsgesprächen scheint das jetzt schon mal zu funktionieren.

Könnte evtl. jemand ein Auge drauf werfen, ob das soweit richtig ist. Vor allem die Sache mit der gleichen Priorität (6). Ist das so richtig?
Die nummer der CALLERID ist auch immer die gleiche (sipgate-nummer), egal ob das Gespräch über sipgate oder qsc rausgeht.

Code:
exten => _x.,1,Set(LANGUAGE()=de)
exten => _x./772,2,Ringing()
exten => _x./772,3,Set(CALLERID(number)=SIPNUM)
exten => _x./SIPNUM,4,Set(CALLERID(name)=MYNAME)
exten => _x./SIPNUM,5,Set(areaCode=030)
exten => _11./SIPNUM,6,Dial(SIP/${EXTEN}@sipgate,120,TW) ;Notruf
exten => _00ZX./SIPNUM,6,Dial(SIP/${EXTEN}@sipgate,120,TW) ;internat. Gespräche -> Sipgate
exten => _0700./SIPNUM,6,Dial(SIP/${EXTEN}@sipgate,120,TW) ;Sonderfall 0700 -> Sipgate
exten => _0900./SIPNUM,6,Hangup ;Sonderfall 0900, verbieten
exten => _010X./SIPNUM,6,Hangup ;Sonderfall CallbyCall-Vorwahl, verbieten
exten => _0NXX./SIPNUM,6,Dial(SIP/${EXTEN}@qsc,120,TW) ;deutsche Gespräche die mit 02 bis 09 beginnen -> qsc
exten => _01XX./SIPNUM,6,Dial(SIP/${EXTEN}@sipgate,120,TW) ;deutsche Gespräche die mit 01 beginnen -> Sipgate
exten => _NXXX./SIPNUM,6,Dial(SIP/${areaCode}${EXTEN}@qsc,120,TW) ;Ortsgespräche -> qsc
exten => _x./SIPNUM,7,Goto(dialStates,${DIALSTATUS},1)

Gruß
canna
 
exten => _11[02]/SIPNUM,6,Dial(SIP/${EXTEN}@sipgate,120,TW) ;Notruf
exten => _118XX/SIPNUM,6,Hangup ;Sonderfall Auskunft, verbieten
exten => _1180XX/SIPNUM,6,Hangup ;Sonderfall Auskunft, verbieten
exten => _0049./SIPNUM,6,Goto(0${EXTEN:4},6) ;0049900xxx u.ä. verhindern
 
exten => _11[02]/SIPNUM,6,Dial(SIP/${EXTEN}@sipgate,120,TW) ;Notruf
exten => _118XX/SIPNUM,6,Hangup ;Sonderfall Auskunft, verbieten
exten => _1180XX/SIPNUM,6,Hangup ;Sonderfall Auskunft, verbieten
exten => _0049./SIPNUM,6,Goto(0${EXTEN:4},6) ;0049900xxx u.ä. verhindern

Danke für die Korrektur.
Die ersten drei sind klar, aber wo führt mich beim vierten dieses goto denn hin und was macht es?

Was bedeuten überhaupt diese Parameter bei "...${EXTEN}@sipgate,120,TW)" die nach sipgate kommen, also '120' und 'TW'?
Hat das was mit dem "fallback" zu tun, dass in meiner original config realisiert war, also dass wenn sipgate nicht geht über qsc gewählt wird? Zumindest beim Notruf würde ich das gerne wieder so haben. Reicht es da einfach die eine extension gleich drunter nochmal zu schreiben, nur mit einem anderen sip provider?


Gruß
 
Ich bin mir nicht ganz sicher ob _x. auch geht. Nimm lieber _X.

${EXTEN:4} liefert die gewählte Rufnummer ohne die ersten 4 Stellen. Durch die 0 vorher wird aus 0049nnnnnnn => 0nnnnnnn. Das goto setzt die EXTEN und die prio.

Dial(type1/identifier1[&type2/identifier2[&type3/identifier3... ] ], timeout, options, URL) -=> http://www.voip-info.org/wiki-Asterisk+cmd+Dial

120 = timeout (soviel Sekunden warten bis jemand abnimmt)
T = Allow the calling user to transfer the call by hitting the blind xfer keys (features.conf)
W = Allow the calling user to start recording after pressing *1 or what defined in features.conf
 
Kostenlos!

Statistik des Forums

Themen
248,859
Beiträge
2,303,045
Mitglieder
378,509
Neuestes Mitglied
anthonyschipper06