Info : LCR mit Preisansage und Fallback

Ich hätte das auch gerne mal durchprobiert, aber durch die Editierungen ist es jetzt viel unübersichtlicher als vorher, da man zwar erraten kann wie das eingebunden wird, aber ich keinen Pascal Compiler habe, ihn nie gebraucht habe und nicht extra einen installieren möchte.
Nur so als Tipp :)
Trotzdem: Klasse Arbeit, vielen Dank!
 
apt-get fpc oder rpm irgendwas... ein bisschen anstrengen mußt Du Dich auch
Nur so als Tipp ;)
Irgendwie haut das hier nicht mit dem Upload hin, sonst hätte ich ja mal ein tgz gemacht und bereitgestellt....

Danke und Gruß
Dominic
 
Hi
wir haben jetzt Werktag nach 19.00 Uhr
- und das script gibt mir keinen Wert zurück....

Deine Korrektur scheint nicht funktioniert zu haben :-(
Kannst du nochmal drüberschauen?

Danke im vorraus
Thorsten
 
Oha, kleine Ursache grosse wirkung, ab 20:00 Uhr wäre es wieder gegangen.
Fehlte ein >=
Code:
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);
      if toT = 0 then toT := 24;

      { Eieiei, schon wieder eine Sonderfall }
      if (toT < fromT) and
         (h>=fromT) then  toT := 24;   

      if (toT < fromT) and
         (h<toT) then
           fromT := 0;
      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.
Wie gesagt, nach Alkoholgenuss soll man nichts mehr programmieren....
Gruß
Dominic
 
:)
Prompter Service.
Ausprobieren kann ich´s jetzt nicht mehr - es ist schon 20:06....
aber morgen kommt der finale test :-D

Gruß
Thorsten
 
grummel - scheint auch jetzt (20:08) nicht zu gehen?!
Gehts bei dir?
 
Ich hatte es noch um 19:56 getestet, ging.....
 
Ich finde leider weder fpc noch irgendeinen anderen Pascal Compiler bei meinem Suse 9.2. Vielleicht sollte ich mir zuerst mal apt4rpm holen :)
 
hi "DerDominic"
leider scheint der Bugfix bei mir nicht zu funktionieren.
Bin ich zu blöd?
Die variable "COST" ist bei mir nach 19.00 Uhr nicht gesetzt. Damit scheiteter meine Preisansage und damit die verbindung... :-(

Gruß
Thorsten
 
Hi Thorsten,

hm, komisch, bei mir geht es, habe mal ein paar debug-meldungen eingebaut, ziehe Dir bitte die aktulle Version von :
http://domflug.staticip.de/bt.pas
Du kannst das ganze auch von der Kommandozeile aus testen, dann siehst Du etwas mehr infos.

Bitte Rückmelden.
Gruß
Dominic
 
Hi Dominic, Hi Thorsten,

eure Entwicklung von lcr auf asterisk gefällt mir sehr gut.

Könnt Ihr das Ganze auf fli4l (ab 2.1.9) integrieren?

Gibt es irgendwo den letzten Stand der Quelldateien und scripte?

Gruß
hwolfi
 
Hi Wolfi,

hmmm, nö, keine Zeit, keine Lust, Nachwuchs bekommen....
Habe ich schon mal erwähnt, daß ich eine faule ... bin ?
Ich mache die Tage mal ein tgz mit allem....

Gruß
Dominic
 
Nun mal als TGZ

Im Anhang mal ein TGZ des aktuellen Standes.....

ab und an mal auf de Webseite von billiger-telefonieren mal eine neue Abfrage für das script bt.sh erstellem, damit auch die neueren Anbieter mit aufgenommen werden. Man sagte mir auf meine Mailanfrage hin, daß dies in absehbarer Zeit nicht mehr notwendig sein wird da sei die Tarifabfrage ändern wollen, mal sehen...

Gruß
DD
 

Anhänge

  • cbc.tgz
    5 KB · Aufrufe: 27
schön was man mit 5.02kb code so alles bewirken kann :)

danke nochmal für das schöne script/tool

gruß
thorsten
 
wohin mit den dateien?

Hallo zusammen,

lese mich schon seit längerem durch dieses Forum und habe nun Dein LCR Script gefunden. Die große LCR-Komplett Lösung funktioniert bei mir aufgrund chan_capi nicht. daher wollte ich dieses mal ausprobieren. Habe das Script heruntergeladen, die beiden .pas dateien mit fpc compiled. Weiß aber nicht wtrklich wo bt.sh und weft hinkopiert werden sollen.

was muß in der extensions.conf eingetragen werden?

Bin noch ziemlich frisch in der Materie, also entschuldigt die vielleicht dummen Fragen.

Wäre für eine Antwort sehr dankbar.

Konfiguration:
Asterisk Bristuff 0.20.Rc8k auf debian Sarge 2.6.10
Fritz PCI an PtmP mit Chan_Capi-cm 0.5.4 + HFC an Auerswald Commander Basic
Sipgate VOIP
 
Hi
bt.sh macht den download - sollte einmal täglich per cron durchgeführt werden.
das weft errechnet ob WErktag oder FeierTag ist - sollte also mit dem bt.sh kombiniert werden damit die richtigen daten runtergeladen werden.
Das ganze steht irgendwo am anfang dieses Threads...
Viel erfolg...

Gruß
Thorsten
 
danke schon mal,

nur was muß ich in der extensions.conf eintragen um das script anzusprechen?

gruß

gunter
 
Hi
dieser Thread seite 2:
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

die entscheidenten zeilen sind
exten => _XXX.,5,agi(bt.agi,${EXTEN},06897)
bzw
exten => _XXX.,107,agi(bt.agi,${EXTEN},06897,'fallback')

Der Fallback ruft die zweitgünstige CbC-Nummer auf - falls die erste Gassenbesetzt meldet... Die 06897 ist die eigene Vorwahl - damit das agi erkennen kann was ein Ortsgespräch ist.

Frage: 4 Seiten Thread zu lesen ist noch nicht zuviel verlangt, oder?
(im VDR-Portal musste ich mich schon durch entwickler-Threads von 24 Seiten durchackern - da kann man den Überblick schonmal verlieren... bei 4 Seiten sollte es möglich sein alles zu lesen... )

Gruß
Thorsten Gehrig
 
Alles klar. Funktioniert, auch mit chan_capi-cm.

Du hast recht, wer lesen kann ist klar im Vorteil, habe aber heute schon so viele threads gewälzt, daß ich dieses posting schlichtweg überlesen habe.

Danke nochmal.

gruß

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