Least Cost Routing komplett!

Eine Alternative wäre hier die Verwendung einer original Diginum Karte mit 4 S0 Ports. Die aktiven Capikarten könnten dann an den internen S0 Port angekoppelt werden. So mache ich das mit 2 HFC und einer Fritz auch damit ich noch Faxen kann.

Oder mit etwas mehr arbeit verbunden aber eleganter... Asterisk kann auch direkt Faxen. http://www.voip-info.org/wiki-Asterisk+fax
 
Probleme mit CbC

Hallo,

ich habe das ganze wie beschrieben installiert und gestern abend hat auch alles wunderbar funktioniert.
Ich habe jedoch den Verdacht, daß es bei einigen CbC-Anbietern Probleme gibt, heute geht es nämlich nicht mehr:
Wenn die "01079" ausgewählt wird (zB jetzt gerade Anruf Richtung D2) dann höre ich noch die Tarifansage, danach bekomme ich ein "Ungültig" am ISDN Telefon, der Ruf wird aber weiter durchgestellt, das Handy klingelt und wenn jemand abnimmt entstehen auch Kosten, obwohl nur Stille in der Leitung ist.

Ich benutze einen Asterisk 1.0.6-BRIstuffed-0.2.0-RC7k mit 2 HFC-Karte (1xNT einmal 1xTE) mit einer HiCom als interne Nebenstelle an der dann ein Gigaset hängt.

Hier mal das debug-log zum fraglichen Zeitpunkt, als Dialstring benutze ich die Beispielconfig (Telefonnummern sind durch "~" ersetzt):

Accepting voice call from '~~~~~~' to 's' on channel 0/2, span 1
-- Executing DigitTimeout("Zap/2-1", "4") in new stack
-- Set Digit Timeout to 4
-- Executing ResponseTimeout("Zap/2-1", "30") in new stack
-- Set Response Timeout to 30
== CDR updated on Zap/2-1
-- Executing Macro("Zap/2-1", "tsblcr|0173~~~~~~~|/etc/asterisk/lcr/tsblcr.routing|~~~~~~|~~~~~~|Zap/g2|/etc/asterisk/sip.conf|") in new stack
-- Executing SetVar("Zap/2-1", "RESTART=0") in new stack
-- Executing SetVar("Zap/2-1", "ROPT=") in new stack
-- Executing GotoIf("Zap/2-1", "1?9") in new stack
-- Goto (macro-tsblcr,s,9)
-- Executing SetLanguage("Zap/2-1", "de") in new stack
-- Executing Goto("Zap/2-1", "dial|1") in new stack
-- Goto (macro-tsblcr,dial,1)
-- Executing AGI("Zap/2-1", "tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|0173~~~~~~~") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/tsblcr.agi
tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|0173~~~~~~~: Started routing for 0173~~~~~~~
tsblcr.agi|/etc/asterisk/lcr/tsblcr.routing|0173~~~~~~~: Result=01079 01079 01079 01071 01071 01071 preselection
-- AGI Script tsblcr.agi completed, returning 0
-- Executing GotoIf("Zap/2-1", "0?disabled|1") in new stack
-- Executing SetVar("Zap/2-1", "IT=0") in new stack
-- Executing SetVar("Zap/2-1", "IT=1") in new stack
-- Executing Cut("Zap/2-1", "CBC=TSBLCRROUTING| |1") in new stack
-- Executing GotoIf("Zap/2-1", "0?end|1") in new stack
-- Executing GotoIf("Zap/2-1", "0?sip|1:pstn|1") in new stack
-- Goto (macro-tsblcr,pstn,1)
-- Executing SetCIDNum("Zap/2-1", "~~~~~~") in new stack
-- Executing SetCIDName("Zap/2-1", "~~~~~~") in new stack
-- Executing GotoIf("Zap/2-1", "0?4:6") in new stack
-- Goto (macro-tsblcr,pstn,6)
-- Executing SetVar("Zap/2-1", "PSTNTRUNK=Zap/g2/") in new stack
-- Executing GotoIf("Zap/2-1", "0? 20 : 10") in new stack
-- Goto (macro-tsblcr,pstn,10)
-- Executing Dial("Zap/2-1", "Zap/g2/010790173~~~~~~~||Tt") in new stack
-- Called g2/010790173~~~~~~~
-- Zap/4-1 is ringing


Hat jemand eine Idee? Ich werde 01079 erstmal entfernen und weiter testen...

Gruß,
Razorblade
 
hmmm scheint wirklich an 01079 zu liegen ... wie ist es denn wenn du ohne das lcr skript ueber die 01079 anrufst?
 
Habe das Problem noch mit keinem anderen Anbieter reproduzieren können, aber:
- ohne das LCR-Script (aber durch den Asterisk) tritt das gleiche Problem auf
- ohne Asterisk (nur über meine HiCom geroutet) geht 01079

Scheint also wohl nicht am LCR-Script zu liegen, sondern ein Problem bei mir oder vielleicht an der HFC?!

Debugging habe ich schon voll hochgedreht aber keine unterschiede gesehen zwischen dem Verhalten mit 01079 und ohne...


Danke trotzdem!

Gruß,
Razorblade
 
Hi,
hat schon jemand ausprobiert, ob der DIALSTATUS mit der chan_capi-0.4.0-PRE1 richtig signalisiert wird?

Bis denn,
Whoopie
 
Hi
die chan_capi 0.4.0PRE1 kriege ich bei mir leider nicht richtig compiliert :-(

Gegenfrage (bzw. Frage an den Programmierer)
Ist es geplabnt den Minutenpreis vom mit auswertbar (und damit ansagbar) zu machen?
So wie ich das sehe ist der ja derzeit nicht in der routing-tabelle enthalten :-(

Gruß
Thorsten Gehrig
 
Ja, die Planung zum Minutenpreis ist da. Es sind auch schon Felder dafuer vorgesehen.
 
hi.
ist abzusehen ab wann die felder gefüllt sind?
Gruß
Thorsten
 
Momentan ist nichts geplant. Wie dringend waer dir denn recht?
 
hi
ist nicht so dramatisch. derzeit benutze ich sowiso verschiedene lcr-programme (unter unterschiedlichen ausscheidungskennziffern).
Ich hab mich nur schnell an die Ansage des Preises gewöhnt :)
Solange ich mit chan_capi arbeite und das besetzt nicht richtig durchsignalisiert wird habe ich sowiso ein problem wenn den billigste anbieter wiedermal ein gassenbesetzt hat :-(

Ist´s denn viel arbeit?

Gruß
Thorsten Gehrig
 
@AllesOK

Habe hier die Diskussion verfolgt und mehrmals die Ankündigung Deines überarbeiteten Dialplans gesehen. Ich hätte da auch Interesse dran :D

Ist er denn schon fertig und wenn, gibts den irgendwo :dance: ?

Aloha

Markus
 
@fairydoc:
Achja ... big sorry ... ich hab sowas bei mir schon laufen, allerdinge bin ich mit der benutzerverwaltung noch unzufrieden. da spielt so viel mit: benutzer, callback'n'through, busy on busy, call-forward ...

@thorsten: ach das sollte wahrscheinlich schnell drin sein. bloed ist wirklich, dass CAPI das Gassenbesetzt nicht durchgibt. Wissen die das schon? Ist das in Arbeit?
 
mach uns nur den Mund wässrig und tauch dann wieder unter :blonk:

Gruß
Matthias :wink:
 
@AllesOK
Dann werde ich mich wohl noch ein bisschen gedulden müssen!

@thorsten.gehrig
Ich kriege die chan_capi 0.4.0PRE1 auch nicht kompiliert (SuSe 9.2). Bist Du da schon weiter gekommen? Ist mit der Version der Whoooopsie Protection error im TEI-Manager behoben?

Aloha

Markus
 
ohne PHP

Asterisk läuft auch sehr gut unter IPCOP 1.4.6 -

hier wäre das LCR jedoch nicht mit php möglich : (

Gibt's auch eine Version ohne PHP ?

( Die Frage wirft natürlich alles um - nur wenn kein php da ist,
gibts leider auch kein LCR ... )

Wenn nein, hat jemand einen Ansatz die Scripte ohne PHP
zu realisieren ?
 
ich bin mir ziemlich sicher, dass man das skript auch ohne php parsen kann ... allerdings fand ich php halt so gemuetlich *g*. also wer will ... einfach melden
 
Variablen setzen?

Hallo,

zuerst mal muss ich sagen, dass ich die Idee mit telefon-sparbuch.de und so weiter echt genial finde und das man echt den Hut ziehen muss vor solch fleisigen Leuten!

Aber auf die Gefahr hin, mich unendlich zu blamieren, ich verstehs noch nicht, wie ich das in mein Asterisk einbinde. Ich hab wirklich 2 Tage das ganze Forum durchsucht und nicht das gefunden was ein DAU wie ich bräuchte.

in der Beschreibung "Einige Schritte" steht:

5) Macro aus extensions.tsblcr einbinden. D.h. Variablen entsprechend setzen und in eurem Outgoing-Kontext das Dial-Kommanda durch den Makro-Aufruf ersetzen!!!

Häh? Ich bin kein Programmierer und kapier das nicht. ich finde in der extensions.tsblcr Zeilen die ich denke wo man die Variablen reinschreiben soll:

[macro-tsblcr]
; ARG1: called number
; ARG2: lcrtable
; ARG3: pstn caller id
; ARG4: pstn caller name
; ARG5: pstn trunk
; ARG6: sip.conf file
; ARG7: restart at

exten => s,1,SetVar(RESTART=0)
exten => s,2,SetVar(ROPT=)
exten => s,3,GotoIf($[${LEN(${ARG7})} = 0]?9)
exten => s,4,SetVar(RESTART=1)
exten => s,5,SetVar(ROPT=Hg)
exten => s,6,Cut(RCONTEXT=ARG7,'^',1)
exten => s,7,Cut(REXTEN=ARG7,'^',2)
exten => s,8,Cut(RPRIO=ARG7,'^',3)
exten => s,9,SetLanguage(de)
exten => s,10,Goto(dial,1)

Aber der erste Block ist ja auskommentiert (ja,das weiß sogar ich, das dass dann nich mehr tut) und im zweiten könnte ich mir vorstellen, dass sobald man * startet, wegen dem "s" dies hier ausgeführt wird, aber WO soll ich das WAS reinschreiben? ROPT=Hg? ROPT= ....ähhh HIIILFEEE.
Danke für eure Mühe
Schöne Grüße und schönes Wochenende
Klaus
 
am macro-tsblcr musst du nichts aendern:

Dort wo du bisher

Code:
exten => _X.,1,Dial(...)
gewaehlt hast, machst du jetzt:
Code:
exten => _X.,1,Macro(tsblcr,${EXTEN},${LCRFILE},${PSTNCALLERIDNUM},${PSTNCALLERIDNAME},${TRUNK},${SIPCONF},${RESTART})
wobei ${LCRFILE} und die weiteren Variablen ordentlich gesetzt sein muessen. Also ZUM BEISPIEL so:
Code:
exten => _X.,1,Macro(tsblcr,${EXTEN},/etc/asterisk/lcr/tsblcr.routing,123456,Ich,Zap/g1/,/etc/asterisk/sip.conf)

Steht aber auch auf der Seite im unteren Teil der Anleitung und in extensions.tsblcr erklaert.
 
Hallo, danke für die schnelle Antwort, so sieht das jetzt bei mir aus:

Code:
;exten=> _xx.,1,Dial,mISDN/g:TE/${EXTEN}
exten=> _xx.,1,Macro(tsblcr,${EXTEN},/etc/asterisk/lcr/tsblcr.routing,109,ICH,mISDN/g:TE/,/etc/asterisk/sip.conf)
exten=> _xx.,2,Congestion
exten=> _xx.,102,Busy

Funktioniert aber noch nicht, ich kriege folgende Meldungen:

Code:
    -- Executing Macro("SIP/66-224d", "tsblcr|01708931865|/etc/asterisk/lcr/tsblcr.routing|109|ICH|mISDN/g:TE/|/etc/asterisk/sip.conf") in new stack
Jun 17 16:38:02 WARNING[9334]: app_macro.c:90 macro_exec: No such context 'macro-tsblcr' for macro 'tsblcr'
    -- Executing Congestion("SIP/66-224d", "") in new stack
  == Spawn extension (default, 0170XXXXXXX, 2) exited non-zero on 'SIP/66-224d'
asterisk*CLI>

oder

Code:
    -- Executing Macro("SIP/66-727a", "tsblcr|001708931865|/etc/asterisk/lcr/tsblcr.routing|109|ICH|mISDN/g:TE/|/etc/asterisk/sip.conf") in new stack
Jun 17 16:39:21 WARNING[9334]: app_macro.c:90 macro_exec: No such context 'macro-tsblcr' for macro 'tsblcr'
    -- Executing Congestion("SIP/66-727a", "") in new stack
  == Spawn extension (default, 00170XXXXXXX, 2) exited non-zero on 'SIP/66-727a'
asterisk*CLI>

Wenn ich die Null vorwähle.

Mein * läuft über einen Nebenstellenanschluss an unsrer Nortel telefonanlage. Zur Amtsholung mußte ich für Gespräche nach aussen immer die Null vorwählen. Das ist aber für die Mitarbeiter in unserer Firma normal, das mußte man schon immer.

Ausserdem weiß ich nicht so richtig wohin mit der "TelefonSparbuch_Asterisk.lcr" welche ich mir erstellt und downgeloaded hab?

Evtl. kanst Du mir nochmal helfen. Vielen Dank.

Klaus
 
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.