Least Cost Routing komplett!

Hallo allesOk,

Na nach ein bischen Gefrickel hab ich es auch hinbekommen mit dem LCR. Das is nicht auf Anhieb geklappt hat liegt aber wohl eher dran, das ich noch ein Noob bin und die Config mit Sirrix Karte nicht ganz trivial ist.

Eine Sache ist mir allerdings noch aufgefallen, wir haben die Vorwahl 033203 und Berlin (direkt neben uns) ist z.B. Citybereich. Leider erkennt der LCR die meisten Orte nicht als Citybereich und selektiert einen falschen CBC Provider.
Ich hab es zwar in der LRC-Tabelle von Hand geändert, jedoch wird das schwierig, wenn der download automatisch erfolgt.

Lässt sich der Bug vielleicht beheben? die Citybereiche findet man unter:
Citybereiche T-Com

Gruß BoZaN
 
@bozan: ich reiche das mal ans telefonsparbuch weiter ... vllt fehlt da ein ortsnetz

nochmal zum format: also eas format hat sich nicht geaendert, aber es gibt momentan update-probleme. wir arbeiten dran!
 
Danke für die schnelle Antwort.

Apropros Updateprobleme, habe es vor kurzem versucht, beim Ersten mal ging es nicht, beim Zweiten mal hat es geklappt. Jetzt hab ich grade wieder folgenden Fehler:

Code:
HTTP request sent, awaiting response...
 1 HTTP/1.0 411 Length Required
 2 Server: squid/2.5.STABLE9
 3 Mime-Version: 1.0
 4 Date: Tue, 05 Jul 2005 13:42:38 GMT
 5 Content-Type: text/html
 6 Content-Length: 1401
 7 Expires: Tue, 05 Jul 2005 13:42:38 GMT
 8 X-Squid-Error: ERR_INVALID_REQ 0
 9 X-Cache: MISS from ipcop.countr.de
10 Connection: close
13:41:39 ERROR 411: Length Required.

Vielleicht hilft es bei der Fehleranalyse

Gruß BoZaN
 
na ich bekomme nur einen internal server error ... hoffe, dass es bald geloest ist.
 
Kommando zurück:

Fehlerhafte Zonenzuordnung

Die Zonenauswahl kann falsche Zoneneinträge enthalten. Bitte prüfen Sie die Zonenauswahl (oder anhand der HTML Preistabelle), ob auch die gewünschten Zonen selektiert sind. Wenn Sie die Konfiguration zwischen dem 01.07.2005 und 05.07.2005 geändert oder gespeichert haben, kann die Zonenauswahl falsch zugeordnet sein.

Die alte Konfig funktioniert wieder!
 
ja es laeuft wieder alles .. aber ich weis noch nicht, was war, bzw. warum es voruebergehend nicht ging ..

also weiterhin viel spass damit!

eine frage: hat es jemand auf einem asterisk@home laufen? und kann evtl. seine konf dazu posten ..
 
knaller knaller knaller.. alles lüppt. danke an allesOK und die weiteren, die das ganze supporten.. ;-)

kleine anmerkung: schreib mal bei requirements rein, dass php cli für die ganze sache gebracht wird, ergo auch um die routingtabelle auszuwerten. ich war anfangs auf dem falschen dampfer und dachte, dass php wäre nur für das crontab script benötigt.
schreib mir mal auf die fahne, dass nur ich zu blöde war. aber wer weiss.. ;-)
 
hmm.. nun bin ich mir doch nicht ganz sicher, ob mein gmx account mein lcr mitgenutzt wird. kann mir jemand sagen, ob ich das richtig mache?

auszug aus sip.conf
Code:
[general]
port = 5060
bindaddr = 0.0.0.0


insecure=very
; Netzadresse LAN
localnet = 192.168.1.0/255.255.255.0

srvlookup = yes
;nat = yes

context = default
disallow=all
allow=ulaw
allow=alaw
allow=gsm


canreinvite=no
insecure = very


;gmx reg
register => 123456:[email protected]/gmxip

;gmx user
[gmx-user]
type=friend
username=123456
fromuser=123456
secret=secret
context=gmx
host=sip-gmx.net
fromdomain=sip-gmx.net
insecure=very
caninvite=no
canreinvite=no
nat=yes
qualify=yes
disallow=all
allow = alaw
allow = ulaw
allow = ilbc
allow = gsm
maxexpirey=3600
defaultexpirey=240


[303]
type=friend
username=303
secret=secret
host=dynamic
;fromuser=test
context=im
canreinvite=no
qualify=no
disallow=all
allow=ulaw
insecure=very
nat=yes
dtmfmode=inband
callerid="das bin ich" <303>

auszug aus extension.conf

Code:
[general]
static=yes
writeprotect=no
#include lcr/extensions.tsblcr


[globals]
IAXINFO=guest   ; IAXtel username/password
;Telefon interactive media
TEL_IM => 123456
;LCRFILE =>/etc/asterisk/lcr/tsblcr.routing

[default]

include => parkedcalls

include => internal
include => gmx-out
include => conferences

[internal]
exten => _3xx,1,DIAL(SIP/${EXTEN},60,tT)

[gmx-out]
exten => _1.,1,Dial(SIP/${EXTEN:1}@gmx-user,60)
exten => _1.,2,Hangup

[im]
include => internal
include => parkedcalls
include => tcom-trunk
include => gmx-out

; Wahl ueber ISDN raus

exten => _0.,1,Macro(tsblcr,${EXTEN:1},/etc/asterisk/lcr/tsblcr.routing,123456,meinname,Zap/g2,/etc/asterisk/sip.conf)

exten => _0.,3,Congestion
;exten => _0.,4,Busy
;exten => _0.,5,Hangup
;Besetzt-Behandlung
exten => _0.,202,Playtones(busy)
exten => _0.,203,Wait(10)
exten => _0.,204,Hangup
;Alle Amtsleitungen belegt
exten => _0.,302,Playtones(congestion)
exten => _0.,303,Wait(10)
exten => _0.,304,Hangup



;Eingehend ueber ISDN
[tcom-trunk]
include => parkedcalls
exten => ${TEL_IM},1,Dial(SIP/300&SIP/303&SIP/301&SIP/302&SIP/307,60,tT)
exten => ${TEL_IM},2,Hangup

auf der webseite habe ich bei ip telefonie gmx angehakt und gmx-out/int1 reingeschrieben.

hab ich irgendwo einen fehler?
 
Hi,

also...
auf der Website nur den Namen aus der sip.conf eintragen (in deinem Fall "gmx-user").

Überprüfe einfach mit "set verbose 9" in der Console was er macht.

Gruß
Matthias
 
und evtl. musst du /intl und nicht int1 (das letzte ist ein kleines L) - was braucht gmx denn?

und es steht drin, dass php-cli benoetigt wird, die requirements beziehen sich auf das gesamte paket und nicht nur das update skript ... und ausserdem: wenn du php-cli fuers update installiert hast, dann ist es doch auch fuers routing installiert ... oder machst du das von zwei verschiedenen rechnern aus?
 
gmx wählt a la 49511, also wohl intl
mach das schon alles auf einem paket. wollte es aber erst zum laufen bringen und mich dann um die updates kümmern. dachte also anfangs, dass das php-cli halt nur für das update genutzt wird.
 
schade. habe das gefühl, gmx nimmt er nicht.
das sagt verbose 9

Code:
Verbosity was 0 and is now 9
    -- Executing Macro("SIP/303-151a", "tsblcr|03914xxxxxx|/etc/asterisk/lcr/tsblcr.routing|1234567|NAME|Zap/g2|/etc/asterisk/sip.conf") in new stack
    -- Executing SetVar("SIP/303-151a", "RESTART=0") in new stack
    -- Executing SetVar("SIP/303-151a", "ROPT=") in new stack
    -- Executing GotoIf("SIP/303-151a", "1?9") in new stack
    -- Goto (macro-tsblcr,s,9)
    -- Executing SetLanguage("SIP/303-151a", "de") in new stack
    -- Executing Goto("SIP/303-151a", "dial|1") in new stack
    -- Goto (macro-tsblcr,dial,1)
    -- Executing AGI("SIP/303-151a", "tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|03914xxxxxx") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/tsblcr.agi
  tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|03914xxxxxx: Started routing for 03914xxxxxx
  tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|03914xxxxxx: Result=01086 01086 01086 01050 01050 01050
    -- AGI Script tsblcr.agi completed, returning 0
    -- Executing GotoIf("SIP/303-151a", "0?disabled|1") in new stack
    -- Executing SetVar("SIP/303-151a", "IT=0") in new stack
    -- Executing SetVar("SIP/303-151a", "IT=1") in new stack
    -- Executing Cut("SIP/303-151a", "CBC=TSBLCRROUTING| |1") in new stack
    -- Executing GotoIf("SIP/303-151a", "0?end|1") in new stack
    -- Executing GotoIf("SIP/303-151a", "0?sip|1:pstn|1") in new stack
    -- Goto (macro-tsblcr,pstn,1)
    -- Executing SetCIDNum("SIP/303-151a", "1234567") in new stack
    -- Executing SetCIDName("SIP/303-151a", "NAME") in new stack
    -- Executing GotoIf("SIP/303-151a", "0?4:6") in new stack
    -- Goto (macro-tsblcr,pstn,6)
    -- Executing SetVar("SIP/303-151a", "PSTNTRUNK=Zap/g2/") in new stack
    -- Executing GotoIf("SIP/303-151a", "0? 20 : 10") in new stack
    -- Goto (macro-tsblcr,pstn,10)
    -- Executing Dial("SIP/303-151a", "Zap/g2/0108603914xxxxxx||Tt") in new stack
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called g2/0108603914xxxxxx
    -- Zap/4-1 is ringing
    -- Hungup 'Zap/4-1'
  == Spawn extension (macro-tsblcr, pstn, 10) exited non-zero on 'SIP/303-151a' in macro 'tsblcr'
  == Spawn extension (im, 003914xxxxxx, 1) exited non-zero on 'SIP/303-151a'
    -- parse_srv: SRV mapped to host sip.sip-gmx.net, port 5060
 
Result=01086 01086 01086 01050 01050 01050

sagt, dass gmx nicht der guenstigste ist ... jedenfalls laut routing. wenn dich notfalls direkt ans telefonsparbuch.de falls da daten nicht aktuell sind.
 
Hallo nachdem mir allesOK super geholfen hat, hab sogar ich LCR zum laufen gebracht.
Nur das mit dem Update check ich nicht! Es sieht ja eigentlich super einfach aus aber wenn ich das so mache wie beschireben hauts einfach nicht hin.

Ich muss doch auf die Homepage http://www.telefonsparbuch.de/tmpl/calc/telephone/lcr/Asterisk/calc_tk.htm?TKANLAGE_BASE=Asterisk gehen und meine Einstellungen machen so wie ichs halt gerne hätte und move die daraus entstehende Date "TelefonSparbuch_Asterisk.lcr" nach /etc/asterisk/lcr/tsblcr.cfg
weil geschrieben steht:
"After telling Telefon-Sparbuch.de about your preferences, you should download the config file to a nice location on your hdd. I prefer /etc/asterisk/lcr/tsblcr.cfg, you can choose your own one."

IMHO hat ABER die Datei tsblcr.routing die Syntax meiner runtergeladenen Datei TelefonSparbuch_Asterisk.lcr

wenn ich dann unter /etc/asterisk/lcr ./tsblcrupdate tsblcr.cfg tsblcr.routing eingebe bekomme ich von der Seite Fehlermeldungen zurück.

Welche genau kann ich jetzt nicht sagen, weil ich grad alles neu mache und während eines make modules modules_install etwas Zeit hatte hier zu posten :)
Aber die Fehlermeldung sagt so in etwa, das ein File davon kein entsprechendes File ist, also nicht die Syntax hat oder so.

Evtl. macht sich allesOK, ob seiner jetzt großen Fangemeinde (eisnchl. mir), nochmal die Mühe eine händchenhaltende Anleitung für alle DAUs und solche die es nicht mehr sein wollen zu verfassen. Es gibt halt ein paar Asterisk User die keine Ahnung vom programmieren haben.

Schöne Grüße an Alle
Klaus
 
vorsicht! nicht die .lcr runterladen sondern einfach eine Zeile weiter untern bei Optionseinstellungen diese "Speichern" und als .cfg auf Platte ablegen. Die hat dann auch das richtige Format!!!!!
 
betr.: voipbuster und die 0049 bei inlandsgesprächen

nachdem in der cfg auch der voipbuster aufgenommen wurde gibt es nun einen konflikt.

rufe ich das makro mit 0049 auf und es soll das festnetz mit lcr vorwahl angerufen werden gibt es eine fehlermeldung. rufe ich das makro ohne 0049 auf klappt es mit dem voipbuster beim sip-aufruf nicht mehr.
 
mit der erweiterung scheint es auch mit dem viopbuster zu klappen

exten => sip,1,Cut(PURECBC=CBC,'/',1)
exten => sip,2,Cut(PARAMETERS=CBC,'/',2)
exten => sip,3,GotoIf($["${PARAMETERS}" = ""]? 12)
exten => sip,4,GotoIf($["${PARAMETERS}" = "intl"]? 5 : 7)
exten => sip,5,SetVar(NUMBER2DIAL=${TSBLCRINTL})
exten => sip,6,Goto(13)
exten => sip,7,Cut(ROFFSET=PARAMETERS,':',1)
exten => sip,8,Cut(RLENGTH=PARAMETERS,':',2)
exten => sip,9,Cut(RSTRING=PARAMETERS,':',3)
exten => sip,10,SetVar(NUMBER2DIAL=${ARG1:0:${ROFFSET}}${RSTRING}${ARG1:$[${ROFFSET} + ${RLENGTH}]})
exten => sip,11,Goto(13)
exten => sip,12,SetVar(NUMBER2DIAL=${TSBLCRFULL})
exten => sip,13,gotoif($["${NUMBER2DIAL:0:2}" = "00"]?23:14) ; if 00 => ok
exten => sip,14,Dial(SIP/0049${NUMBER2DIAL:1}${PURECBC},,Tt${ROPT}) ; add 0049
exten => sip,15,Goto(ds-${DIALSTATUS},1)
exten => sip,23,Dial(SIP/${NUMBER2DIAL}${PURECBC},,Tt${ROPT})
exten => sip,24,Goto(ds-${DIALSTATUS},1)
exten => sip,104,Goto(ds-${DIALSTATUS},1)
 
Ich wäre eher für das einführen einer neuen Variable...

/intl00


Also agi anpassen so in der Art:

Code:
// rewriting numbers
if (substr($number,0,2) == "00") {
    execute_agi("SET VARIABLE TSBLCRFULL $number 1");
    execute_agi("SET VARIABLE TSBLCRINTL +" . substr($number,2) . " 1");
    execute_agi("SET VARIABLE TSBLCRINTL00 00" . substr($number,2) . " 1");
} else if (substr($number,0,1) == "0") {
    execute_agi("SET VARIABLE TSBLCRFULL $number 1");
    execute_agi("SET VARIABLE TSBLCRINTL +$internationalprefix" . 
                substr($number,1) ." 1");
    execute_agi("SET VARIABLE TSBLCRINTL00 00$internationalprefix" . 
	         substr($number,1) ." 1");

} else {
    execute_agi("SET VARIABLE TSBLCRFULL 0$localprefix$number 1");
    execute_agi("SET VARIABLE TSBLCRINTL +$internationalprefix$localprefix" . 
                $number. " 1");
    execute_agi("SET VARIABLE TSBLCRINTL00 00$internationalprefix$localprefix" . 
                $number. " 1");

und in der extension halt die Abfrage nach intl00 erweitern.

Code:
; sip-provider
; TODO test if exists
exten => sip,1,Cut(PURECBC=CBC,'/',1)
exten => sip,2,Cut(PARAMETERS=CBC,'-',2)
exten => sip,3,GotoIf($["${PARAMETERS}" = ""]? 15)
exten => sip,4,GotoIf($["${PARAMETERS}" = "intl"]? 5 : 7)
exten => sip,5,SetVar(NUMBER2DIAL=${TSBLCRINTL})
exten => sip,6,Goto(16)
exten => sip,7,GotoIf($["${PARAMETERS}" = "intl00"]? 8 : 10)
exten => sip,8,SetVar(NUMBER2DIAL=${TSBLCRINTL00})
exten => sip,9,Goto(16)
exten => sip,10,Cut(ROFFSET=PARAMETERS,':',1)
exten => sip,11,Cut(RLENGTH=PARAMETERS,':',2)
exten => sip,12,Cut(RSTRING=PARAMETERS,':',3)
exten => sip,13,SetVar(NUMBER2DIAL=${ARG1:0:${ROFFSET}}${RSTRING}${ARG1:$[${ROFFSET} + ${RLENGTH}]})
exten => sip,14(Goto(16)
exten => sip,15,SetVar(NUMBER2DIAL=${TSBLCRFULL})
exten => sip,16,Dial(SIP/${NUMBER2DIAL}${PURECBC},,T${ROPT})
;exten => sip,16,Dial(SIP/${NUMBER2DIAL}${PURECBC},,Tt${ROPT})
exten => sip,17,Goto(ds-${DIALSTATUS},1)
exten => sip,104,Goto(ds-${DIALSTATUS},1)

Ich hab allerdings im Moment das Problem das Telefonsparbuch das "/" nicht in die Routingdatei übernimmt.
Sprich ich nenne den Provider "voipbuster/intl00" und raus kommt "voipbusterintl00" (egal ob intl oder intl00)

Nutze stattdessen ein "-"

Code:
exten => sip,2,Cut(PARAMETERS=CBC,'-',2)

Gruß
Matthias
 
ok, ich werde mir das anschauen und einarbeiten ...
 
hallo allesok,

passt hier zwar nicht unbedingt rein, aber ich wollte mal vorsichtig nachfragen was stand der dinge mit deinem neuen dialplan ist, ich warte schön sehnsüchtig...

danke & gruß
 

Statistik des Forums

Themen
246,100
Beiträge
2,246,175
Mitglieder
373,582
Neuestes Mitglied
Achim17
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.