Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 20 von 60

Thema: Info : LCR mit Preisansage und Fallback

  1. #1
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151

    Info : LCR mit Preisansage und Fallback

    Nach einigen Änderungen... am besten gleich auf Seite 2 weiterlesen


    Dominic

  2. #2
    IPPF-Fünfhundert-Club
    Registriert seit
    24.05.2004
    Beiträge
    732
    Sieht recht nett aus, bastele aber gerade selbst mit telefonsparbuch zusammen an einer loesung mit fallback, voip, forbidden und preselection. Erste Ergebnisse zwischen den Tagen dann hier im Forum.
    Wer abnimmt hat mehr vom Telefon!

    DSL-Modem: Fritz!Box
    Router/Server: PentiumM 1.7GHz/Aopen i855GMEm-LFS/512MB/40GB HDD/Antec Aria/Sirrix PCI.4S0 & HFC Conceptronic128 ISDN, c\'t-Server v1.01 gepatched/bristuff-0.2.0-rc5
    Netz: T-Com 6072/512 kBit/s mit T-Online DSL 3000, T-ISDN CallPlus
    Clients: Ascom Eurit33plus, FMN alpha euro 3000, Grandstream BT-101, X-Lite, iaxComm
    Provider: Voipbuster, Sipgate, Web.de, Uni Saarland

    Kein PN-Support!

  3. #3
    Hi
    @DerDominic:
    Das cron-script liefert leider nur noch eine leere lcr.txt (zumindest bei mir).
    Da ich von awk keine Ahnung habe ... hast du eine neue angepasste version?

    Gruß
    Thorsten

  4. #4
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    Auch HI,
    ja, da gab es ständig Probleme mit Teltarif und habe ein neus Skript geschrieben, welches auf Telefonsparbuch zugreift.
    Ist zwar noch nicht ganz so fertig wie ich will, kansnt Du aber auch verwenden, unterteilung zwischen Ort, Fern, Mobil und Ausland gibt es nicht mehr, dafür kansnt Du nun ein Fallback über mehrere Stufen machen.
    Demnächst, wenn ich Lust und Laune habe werde ich das dann mal erweitern....

    Gruß
    Dominic

    #!/bin/bash
    wget 'http://www.telefon-sparbuch.de/tmpl/calc/telephone/std/profi/index.htm?type=Telephone&jscript=1&FORM=profi&ZNAM E=ZNAME&
    zone=a&zone=d&zone=e&zone=fi&day=%2B&time=%2B&subm it=Anfrage+senden&MAX_RESULT=5&CBC0=1&_190=1&CONNE CT=ANALOG&PERCENT_SAVED=1
    &COSTS_SORT=DFT&COSTS_EXTRA=0&COSTS=3%3A01&comment =1&CENTS=1&PRICE_ONCE=1&PULSE_EXTRA=1&PULSE_EXTRA_ CHOICE=60%2F60&CBC_AT=1&D
    _TIME=6-18+%2F+18-21+%2F+21-6&DWEEK_TIME=&DWEEKEND_TIME=wie+bei+Werktag' -O /tmp/ttt.txt
    grep Rangliste /tmp/ttt.txt | awk -F '<td nowrap>' '{print $2}' | awk -F '
    ' '{print $1}' | cat > /tmp/lcr-all.txt
    grep Rangliste /tmp/ttt.txt | awk -F '<td nowrap>' '{print $6}' | awk -F '
    ' '{print $1}' | cat >> /tmp/lcr-all.txt
    grep Rangliste /tmp/ttt.txt | awk -F '<td nowrap>' '{print $10}' | awk -F '
    ' '{print $1}'| cat >> /tmp/lcr-all.txt
    grep Rangliste /tmp/ttt.txt | awk -F '<td nowrap>' '{print $14}' | awk -F '
    ' '{print $1}'| cat >> /tmp/lcr-all.txt
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  5. #5
    Hi
    >unterteilung zwischen Ort, Fern, Mobil und Ausland gibt es nicht mehr

    Das verstehe ich nicht?!
    Dass es keine Unterteilung für kurz&lang gibt kann ich ja noch nachvollziehen...
    Die erstelle lcr-all.txt datei hat 4 Zeilen - wobei mir nicht klar ist wonach diese liste erstellt wurde!
    Gruß
    Thorsten

  6. #6
    IPPF-Fünfhundert-Club
    Registriert seit
    24.05.2004
    Beiträge
    732
    es gibt doch ein fertiges LCR fuer telefonsparbuch ... sucht doch mal nach 'LCR komplett'
    Wer abnimmt hat mehr vom Telefon!

    DSL-Modem: Fritz!Box
    Router/Server: PentiumM 1.7GHz/Aopen i855GMEm-LFS/512MB/40GB HDD/Antec Aria/Sirrix PCI.4S0 & HFC Conceptronic128 ISDN, c\'t-Server v1.01 gepatched/bristuff-0.2.0-rc5
    Netz: T-Com 6072/512 kBit/s mit T-Online DSL 3000, T-ISDN CallPlus
    Clients: Ascom Eurit33plus, FMN alpha euro 3000, Grandstream BT-101, X-Lite, iaxComm
    Provider: Voipbuster, Sipgate, Web.de, Uni Saarland

    Kein PN-Support!

  7. #7
    hi
    @allesok: ist klar - aber so ein einfaches LCR hat auch seinen reiz. ich wollte nicht die komplexe LCR-geschichte installieren....
    aber wenn mir nichts anderes übrig bleibt schaue ich mir das mal an.

    Gruß
    Thorsten

  8. #8
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    So, im Falle des Interesses weil einem die AllesOK-Lösung zu gewaltig/groß/sonstwas ist......
    Hier ein neues LCR, die Daten werden von Billiger-Telefonieren.de gezogen, dabei reichtes einmal am Tag diese zu holen.


    bla bla bla... alter kram entfernt .....

  9. #9
    Hi
    wie bindet man den das Pacal ein? (bin in diese rrichtung ein anfänger). Unter debian gibt es den gpc (GNU Pascal Compiler) - ist das ok?
    wie sieht das bt.agi aus? ist das direkt das ausführbare compilat?

    Gruß
    Thorsten

  10. #10
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    1. Mit apt-get install fp-compiler den fpc installieren.
    2. fpc bt.pas
    3. cp bt /var/lib/asterisk/agi-bin/bt.agi

    Gruß
    Dominic
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  11. #11
    Hi Dominic,
    das ganze sieht soweit sehr gut aus!
    Frage: wie stelle ich sicher dass der Download nach 0:00 Uhr stattfindet? Sonst habe ich ja am Samstag die Liste vom Freitag?
    Ist das sichergestellt wenn ich das Downloadscript einfach ein cron.daily ablege?

    2 Kleine Wünsche:
    a) dein Script wählt ja automatisch die Vorwahl sofern die Nummer nicht mit 0 beginnt. Wenn ich die Vorwahl mitwähle (bin es halt schon gewohnt) nimmt dein Script aber den Tarif für Fern - kann man das ändern?
    b) Da die Preise ja mit runtergeladen werden - währe eine Übergabe an das Script genial. So könnte man seine eigene Preisansage machen...

    Ansonsten: DANKE! Gutes Script.

    Gruß
    Thorsten

  12. #12
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    Hi Thorsten,
    füge einfach in Zeile 89 folgendes ein :
    if pos (paramstr(2),callerString)> 0 then Distance := local;

    Ja, an die Preisgeschichte habe ich auch schon gedacht, die könnte man dann vorher ansagen...
    Mal kucken wie man das macht...
    Vorschlag, ich setze eine Varibale Costs und Du kuckst nach wie man das Ansagt


    Gruß
    Dominic
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  13. #13
    IPPF-Tausend-VIP Avatar von TinTin
    Registriert seit
    06.05.2004
    Beiträge
    1.864
    Das mit der Ansage könnte man ja von dem Sipgate Ansageskript entleihen...

    http://www.ip-phone-forum.de/forum/v...hlight=#118703

    Gruß,
    Tin

  14. #14
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    Wenn ich mir recht erinnere gibt es doch das was mit Saynum, geht das damit nicht einfacher ?
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  15. #15
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    Dann auf ein neues :
    Hier unser kleiner Pascal :

    program lcr;

    uses Dos;

    const
    fallback : boolean = false;
    pre : string = '';

    Type
    t_Distance = (none,local,DE,Mobile,Foreign);

    var
    infile : Text;
    tString : string;
    Distance : t_Distance;
    CallerString : String;

    procedure trim(var is :string);
    begin
    while (pos (' ',is) > 0) do delete (is,pos (' ',is),1);
    end;

    function timeOK:boolean;
    var
    h,m,s,hund : word;
    fromT,toT : byte;
    temp : string[5];
    begin
    timeOK:=false;
    if pos('Uhr',tString) > 0 then
    begin
    GetTime (h,m,s,hund);
    temp := copy (tString,1,pos('-',tString)-1);
    trim (temp);
    val (temp,fromT,hund);
    temp := copy (tString,pos('-',tString)+1,2);
    trim (temp);
    val (temp,toT,hund);
    timeOK:= (h>=fromT) and (h<=toT);
    { writeln (tString);}
    end;
    end;

    procedure workOn;
    const
    start = 7;
    var
    count : byte;
    cost,
    lcr : string[12];
    startp : byte;
    endp : byte;
    begin
    if Distance = local then count := start;
    if Distance = DE then count := start+1;
    if Distance = Mobile then count := start+2;
    if Distance = Foreign then count := start+3;
    if fallback then count:=count+4;
    while (not EOF(infile)) do
    begin
    readln (infile,tString);
    if count = 0 then begin
    writeln (tString);
    lcr := copy (tString,1,pos(' ',tString)-1);
    startp := pos('>',tString)+1;
    endp := pos (' c',tString);
    writeln ('Start : ',startp, ' Ende : ',endp);
    cost := copy (tString,startp, endp-startp);
    writeln ( 'SET VARIABLE LCR ',lcr,pre);
    writeln ( 'SET VARIABLE COSTS ',cost);
    end;
    dec(count);
    end;
    end;

    function setDistance:boolean;
    begin
    Distance := none;
    if callerString[1] <> '0' then Distance := local;
    if callerString[1] = '0' then Distance := DE;
    if pos ('01',callerString) = 1 then Distance := Mobile;
    if pos ('00',callerString) = 1 then Distance := Foreign;
    if pos (paramstr(2),callerString)> 0 then Distance := local;
    if Distance = local then pre := paramstr(2);
    setDistance := Distance <> none;
    end;

    begin
    { Parameter
    1 : gewaehlte Nummer
    2 : lokale Vorwahl
    3 : Fallback
    }
    Assign (infile, '/tmp/bt-call-cost.txt');
    Reset(infile);
    callerString := paramstr(1);
    fallback := paramstr(3) = 'fallback';
    if setDistance then
    begin
    while (not EOF(infile)) do
    begin
    readln (infile,tString);
    if timeOK then workOn;
    end;
    end;
    writeln;
    end.

    Der mit diesem Script gefüttert wird :
    #!/bin/bash
    #wget 'http://www.billiger-telefonieren.de/tarife/tagesuebersicht.php3?maxanzeige=2&inlandszone%5B%5 D=Ort&inlandszone%5B%5D=Fern&inlandszone%5B%5D=D1& inlandszone%5B%5D=NULL&inlandszone%5B%5D=NULL&ausl andszonen%5B%5D=Frankreich&auslandszonen%5B%5D=&ze itraum=wt&tageszeitraum=0-24&kompakt=y&ids%5B%5D=8378&taktmax=60&tarif_ansag e=n&inc_190=on&berechnen=berechnen&ids%5B%5D=8516& ids%5B%5D=8494&ids%5B%5D=8636&ids%5B%5D=8621&ids%5 B%5D=8614&ids%5B%5D=8610&ids%5B%5D=8580&ids%5B%5D= 8345&ids%5B%5D=8058&ids%5B%5D=8639&ids%5B%5D=8343& ids%5B%5D=8496&ids%5B%5D=8633&ids%5B%5D=8561&ids%5 B%5D=8254&ids%5B%5D=8619&ids%5B%5D=8550&ids%5B%5D= 8061&ids%5B%5D=8563&ids%5B%5D=8638&ids%5B%5D=8604& ids%5B%5D=8611&ids%5B%5D=7775&ids%5B%5D=8059&ids%5 B%5D=8634&ids%5B%5D=8562&ids%5B%5D=8377&ids%5B%5D= 8615&ids%5B%5D=8605&ids%5B%5D=8057&ids%5B%5D=8631& ids%5B%5D=7765&ids%5B%5D=7732&ids%5B%5D=7513&ids%5 B%5D=8612&ids%5B%5D=8632&ids%5B%5D=8635&ids%5B%5D= 8616&ids%5B%5D=8624&ids%5B%5D=8599&ids%5B%5D=8592& printversion=yes' -O /tmp/bt.txt

    grep fbbb /tmp/bt.txt | awk -F 'fbbb">' \
    '{ split ($2,ar,"<"); print ar[1] " " ar[3]; \
    split ($3,ar,"<"); print ar[1] " " ar[3]; \
    split ($4,ar,"<"); print ar[1] " " ar[3]; \
    split ($5,ar,"<"); print ar[1] " " ar[3]; \
    }' > /tmp/bt-call-cost.txt

    Es werden die Variablen LCR und COSTS gesetzt, nun muß man das nur noch irgendwie ausgeben.....

    Dominic
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  16. #16
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    Um die ganze Sache dann zu vervollständigen :
    exten => _XXX.,1,SetLanguage(de)
    exten => _XXX.,2,Ringing
    exten => _XXX.,3,Macro(Tel${PRI_NETWORK_CID})
    exten => _XXX.,4,SetCIDNum(${outMSN})
    exten => _XXX.,5,agi(bt.agi,${EXTEN},06897)
    exten => _XXX.,6,SayPhonetic,${COSTS} ;
    exten => _XXX.,7,Dial(${ISDNEXT}/${LCR}${EXTEN},60,Tr)
    exten => _XXX.,8,Congestion
    exten => _XXX.,107,agi(bt.agi,${EXTEN},06897,'fallback')
    exten => _XXX.,108,SayPhonetic,${COSTS} ;
    exten => _XXX.,109,Dial(${ISDNEXT}/${LCR}${EXTEN},60,Tr)
    exten => _XXX.,110,Congestion
    exten => h,1,Hangup


    Hmmm, hab ich eigentlich nix besseres zu tun ?????

    Gruß
    Dominic
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  17. #17
    Hi
    danke für den genial schnellen service!
    Das SayPhonetic scheint bei mir noch nicht richtig zu laufen - obwohl meine gebristuffte 1.0.7 den Befehl schon kennt. Ich denke ich werde mir das irgendwie noch zurechtbiegen mit
    "Dieses Gespräch Kostet"
    Saynumber( Zahl vor dem Komma)
    "Komma"
    SayNumber (Zahl nach dem Komma)
    "cent pro Minute"

    Das krieg ich aber auch selbst gebacken...
    Gruß
    Thorsten

  18. #18
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151
    Keine Ursache,

    wenn Du dann das nette Ansagegespräch zusammengeschaubt hast, bitte zukommen lassen...

    Gruß
    Dominic
    Asterisk 1.2.1-BRIstuffed-0.3.0-PRE-1g
    www.thomes-event-cafe.de Feiern, tanzen, lachen. Starten Sie ihre Feier in Thomés Event Café in Quierschied

  19. #19
    Hi
    ein kleiner Fehler den ich gerade Festgestellt habe:
    wir haben nun 23:15 - das Script verwendet die Preise die für 22-23 Uhr angegeben sind!
    Keine Ahnung ob das nur in diesem Zeitfenster so ist (vielleicht weil das Fenster von 23 bis 0 geht?)

    Meine Preisansage sieht so aus:

    exten => _8.,3,agi(bt.agi,${EXTEN:1},06027)
    exten => _8.,4,Wait(0.5)
    exten => _8.,5,SayNumber(${COSTS}) <-- Das sagt die Zahl von dem Komma
    exten => _8.,6,Playback(comma)
    exten => _8.,7,SayNumber(${COSTS:-2,2}) <-- Das sagt die letzten beiden Ziffern
    exten => _8.,8,Playback(cent)

    Gruß
    Thorsten

  20. #20
    IPPF-Fan
    Registriert seit
    01.12.2004
    Ort
    Quierschied
    Beiträge
    151

    LCR mit Preisansage und Fallback

    Hoppla, dummer Fehler hier nun korrigiert :
    Code:
    program lcr;
    
    uses Dos;
    
    const 
      fallback &#58; boolean = false;
      pre &#58; string = '';
    
    Type
      t_Distance = &#40;none,local,DE,Mobile,Foreign&#41;;
    
    var
      infile &#58; Text;
      tString &#58; string;
      Distance &#58; t_Distance;
      CallerString &#58; String;
    
    procedure trim&#40;var is &#58;string&#41;;
    begin
    	while &#40;pos &#40;' ',is&#41; > 0&#41; do delete &#40;is,pos &#40;' ',is&#41;,1&#41;;
    end;
    
    function timeOK&#58;boolean;
    var
    	h,m,s,hund &#58; word;
    	fromT,toT  &#58; byte;
    	temp	   &#58; string&#91;5&#93;;
    begin
    	timeOK&#58;=false;
    	if pos&#40;'Uhr',tString&#41; > 0 then
    	begin
    		GetTime &#40;h,m,s,hund&#41;;
    		temp &#58;= copy &#40;tString,1,pos&#40;'-',tString&#41;-1&#41;;
    		trim &#40;temp&#41;;
    		val &#40;temp,fromT,hund&#41;;
    		temp &#58;=  copy &#40;tString,pos&#40;'-',tString&#41;+1,2&#41;;
    		trim &#40;temp&#41;;
    		val &#40;temp,toT,hund&#41;;
    		if toT = 0 then toT &#58;= 24;
    		timeOK&#58;= &#40;h>=fromT&#41; and &#40;h<toT&#41;;
    &#123;		writeln &#40;tString&#41;;&#125;
    	end;
    end;
    
    procedure workOn;
    const
      start = 7;
    var
      count &#58; byte;
      cost,
      lcr &#58; string&#91;12&#93;;
      startp &#58; byte;
      endp &#58; byte;
    begin
      if Distance = local then count &#58;= start;
      if Distance = DE then count &#58;= start+1;
      if Distance = Mobile then count &#58;= start+2;
      if Distance = Foreign then count &#58;= start+3;
      if fallback then count&#58;=count+4;
      while &#40;not EOF&#40;infile&#41;&#41; do
      begin
      	readln &#40;infile,tString&#41;;
    	if count = 0 then begin
    		writeln &#40;tString&#41;;
    		lcr  &#58;= copy &#40;tString,1,pos&#40;' ',tString&#41;-1&#41;;
    		startp &#58;= pos&#40;'>',tString&#41;+1;
    		endp &#58;= pos &#40;' c',tString&#41;;
    		writeln &#40;'Start &#58; ',startp, ' Ende &#58; ',endp&#41;;
    		cost &#58;= copy &#40;tString,startp, endp-startp&#41;;
    		writeln &#40; 'SET VARIABLE LCR ',lcr,pre&#41;;
    		writeln &#40; 'SET VARIABLE COSTS ',cost&#41;;
    	end;
    	dec&#40;count&#41;;
      end;
    end;
    
    function setDistance&#58;boolean;
    begin
    	Distance &#58;= none;
    	if callerString&#91;1&#93; <> '0' then Distance &#58;= local;
    	if callerString&#91;1&#93; = '0'  then Distance &#58;= DE;
    	if pos &#40;'01',callerString&#41; = 1 then Distance &#58;= Mobile;
    	if pos &#40;'00',callerString&#41; = 1 then Distance &#58;= Foreign;
    	if pos &#40;paramstr&#40;2&#41;,callerString&#41;> 0 then Distance &#58;= local;
    	if Distance = local then pre &#58;= paramstr&#40;2&#41;;
    	setDistance &#58;= Distance <> none;
    end;
    
    begin
    &#123; Parameter 
      1 &#58; gewaehlte Nummer
      2 &#58; lokale Vorwahl
      3 &#58; Fallback
     &#125;
      Assign  &#40;infile, '/tmp/bt-call-cost.txt'&#41;;
      Reset&#40;infile&#41;;
      callerString &#58;= paramstr&#40;1&#41;;
      fallback     &#58;= paramstr&#40;3&#41; = 'fallback';  
      if  setDistance then
      begin
    	  while &#40;not EOF&#40;infile&#41;&#41; do
    	  begin
    		readln &#40;infile,tString&#41;;
    		if timeOK then workOn;
    	  end;
      end;
      writeln;
    end.

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. C470IP (und andere?) und keine Preisansage bei dus.net
    Von voipd im Forum Gigaset (Siemens)
    Antworten: 3
    Letzter Beitrag: 09.06.2010, 18:22
  2. Fallback
    Von Silver 111 im Forum Least Cost Routing für FBF (LCR)
    Antworten: 1
    Letzter Beitrag: 01.02.2009, 16:24
  3. 01099 First Telecom CbC hat Preisansage, obwohl anders vermerkt
    Von Humfri im Forum Least Cost Routing für FBF (LCR)
    Antworten: 0
    Letzter Beitrag: 29.03.2007, 12:08
  4. 01057 hat Preisansage - im LCR aber anders vermerkt
    Von Humfri im Forum Least Cost Routing für FBF (LCR)
    Antworten: 6
    Letzter Beitrag: 16.01.2007, 21:11
  5. Fallback LCR
    Von Silver 111 im Forum Least Cost Routing für FBF (LCR)
    Antworten: 2
    Letzter Beitrag: 27.10.2006, 22:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •