Enumlookup

enumlookup problemchen mit enumtel

Hallo,

Ich habe das enumlookup 0.23 skript grad einstalliert funzt auch alles klasse bis auf eins :)
die Enumtelentry.
Im debugfile sehe ich die tel:<nummer> aber er wählt sie nicht per capi die variable scheint leer zu sein:
Executing Dial("SIP/31-a9bd", "CAPI/xxxxxx:b|60|Ttr") in new stack
Wie Ihr seht steht hinterm b keine nummer im debugfile aber schon.

Woran kann das liegen?

Thx und Gruß
netscout
 
Hallo,

kannst du die entsprechenden Aufrufe aus dem Dialplan, das debugfile und vielleicht auch noch die enumagi.conf posten?

Viele Grüße!
Benno
 
enumagi.conf:
Code:
; ENUM Configuration for enumlookup.agi
; Sample config for Asterisk

; The search list for domains may be customized.
; Enumlookup.agi will return all entries found by all domains defined here.

search => e164.arpa   ; This is the default.
search => e164.org

; You can define a NAMESERVER for ENUM requests.
enumdns => ns.teamware-gmbh.de

; Forbidden tel numbers
;disallow => all

; Allowed tel numbers (overwrites disallow)
allow => all         ; This is the default, if nothing is forbidden.
;allow => 0[2-6]       ; Allow all numbers beginning with 02, 03, 04, 05
                      ; or 06
;allow => 0049[2-6]
;allow => 070[2-8]
;allow => 004970[2-8]

; Set file for debugging. This file will contain all returned ENUM
; entries of last enumlookup.
debugfile => /tmp/enumdebug   ; Disabled if undefined

; Set file to save disallowed tel entries. This file will contain all
; rejected tel entries.
;disallowfile => /tmp/enumdisallow   ; Disabled if undefined

extensions.conf:
Code:
; NATIONAL
exten => _0[1-9]XXX.,1,SetVar(ENUMEXTEN=49${EXTEN:1})       ; I only use german numbers
;exten => _0[1-9]XXX.,2,SetVar(ENUMTELPREFIX=SIP/) ; I want to use my SIP-Provider for dialing tel entries
exten => _0[1-9]XXX.,2,SetVar(ENUMTELPREFIX=) ; I want to use my SIP-Provider for dialing tel entries
exten => _0[1-9]XXX.,3,agi,enumlookup.agi
exten => _0[1-9]XXX.,4,SetVar(EINTRAG=0)
exten => _0[1-9]XXX.,5,GotoIf($[${ENUMENTRIES}]?10:31)      ; Look if there are entries
exten => _0[1-9]XXX.,10,SetVar(EINTRAG=$[${EINTRAG} + 1])
exten => _0[1-9]XXX.,11,GotoIf($[$[${ENUMENTRY${EINTRAG}:0:3} = IAX] | $[${ENUMENTRY${EINTRAG}:0:3} = SIP]]?12:21)
exten => _0[1-9]XXX.,12,Dial(${ENUMENTRY${EINTRAG}},30,Ttr)
exten => _0[1-9]XXX.,13,GotoIf($[${EINTRAG} < ${ENUMENTRIES}]?10:31)
; What to do with mailto entries:
exten => _0[1-9]XXX.,21,GotoIf($[${ENUMENTRY${EINTRAG}:0:6} = mailto]?22:30)
exten => _0[1-9]XXX.,22,Playback(vm-nobodyavail)
exten => _0[1-9]XXX.,23,Playback(vm-intro)
exten => _0[1-9]XXX.,24,Playback(beep)
exten => _0[1-9]XXX.,25,Monitor(wav,/tmp/nachricht)
exten => _0[1-9]XXX.,26,MeetMe(20,pqs)
exten => _0[1-9]XXX.,27,System(nail -a /tmp/nachricht-in.wav -s Voicemail ${ENUMENTRY${EINTRAG}:7} < /dev/null)
exten => _0[1-9]XXX.,28,Hangup
exten => _0[1-9]XXX.,30,GotoIf($[${EINTRAG} < ${ENUMENTRIES}]?10:31
exten => _0[1-9]XXX.,31,GotoIf($[${ENUMTELENTRIES}]?32:51)
; What to do with tel entries (is only used if all the other entries fail):
exten => _0[1-9]XXX.,32,SetVar(EINTRAG=0)
exten => _0[1-9]XXX.,33,SetVar((EINTRAG=$[${EINTRAG} + 1])
exten => _0[1-9]XXX.,34,Playback(beep)  ; Playing beep means that this call isn't for free
exten => _0[1-9]XXX.,35,Macro(user${CALLERIDNUM})
exten => _0[1-9]XXX.,36,SetCIDNum(${CALLERIDNUM})
exten => _0[1-9]XXX.,37,SetCIDName(${CALLERIDNAME})
exten => _0[1-9]XXX.,38,SetCallerID(${CALLERID})
exten => _0[1-9]XXX.,39,Dial(${MNET}/${MYMSN}:b${ENUMTELENTRY${EINTRAG}},60,Ttr)
;exten => _0[1-9]XXX.,39,Dial(${ENUMTELENTRY${EINTRAG}},30,Ttr)
exten => _0[1-9]XXX.,20,GotoIf($[${EINTRAG} < ${ENUMTELENTRIES}]?33:51)
; If there are no enum entries or if all of them fail:
exten => _0[1-9]XXX.,51,Playback(beep)
exten => _0[1-9]XXX.,52,Macro(call-mnet)
exten => _0[1-9]XXX.,53,Hangup

debugfile:
ENTRIES:


TELENTRIES:
+49894xxxxxxx
 
Es kann leider noch einen Moment dauern, bis ich mich mit diesem Problem beschäftigen kann. Also bitte nicht übel nehmen!
 
Hallo,

Kein Problem.
gut zu wissen das es sich angeguckt wird, denn ansonsten funzt es supe rbis auf die eine sache :)

Gruß netscout
 
Ich hab den Fehler noch nicht entdecken können. Kannst du das enumlookup.agi mal gegen dieses hier austauschen und mir dann nochmal das debugfile posten? Nummern können natürlich wieder geändert werden.

Vielen Dank!
Benno

P.S.: Die Dateinamen-Endung muss noch von "txt" nach "agi" geändert werden.
 

Anhänge

  • enumlookup.txt
    7.3 KB · Aufrufe: 10
ENTRIES:


TELENTRIES:
+4989427xxx

***+4989427xxx***

Aber beim wählen steht die numme rnicht da. Komtm die variable vllt nicht richtig rüber in den asterisk?
 
Nur mal, um ein Problem mit der Zählschleife auszuschließen: Hast du mal versucht statt
Code:
exten => _0[1-9]XXX.,39,Dial(${MNET}/${MYMSN}:b${ENUMTELENTRY${EINTRAG}},60,Ttr)
direkt den ersten tel-Eintrag zu wählen
Code:
exten => _0[1-9]XXX.,39,Dial(${MNET}/${MYMSN}:b${ENUMTELENTRY1},60,Ttr)
?
Wenn das funktioniert, stimmt was mit dem Zähler nicht, vielleicht wegen des vorigen Macro-Aufrufs. Funktioniert es nicht, dann kannst du vielleicht mal kurzfristig die extensions.conf folgendermaßen ändern
Code:
exten => _0[1-9]XXX.,3,agi,enumlookup.agi
exten => _0[1-9]XXX.,4,System(echo ${ENUMTELENTRY1} > /tmp/debug)
;exten => _0[1-9]XXX.,4,SetVar(EINTRAG=0)
und mir sagen, ob die Nummer in /tmp/debug geschrieben wird.
 
Wenn ich das eintrage:
exten => _0[1-9]XXX.,39,Dial(${MNET}/${MYMSN}:b${ENUMTELENTRY1},60,Ttr)

Dann gehts und wählt die nummer die in der Zone steht
Aber er wählt halt mit +49 was meine capi karte nicht versteht

Called 4522xxx:b+4989427xxx
 
Gut, dann liefert das Skript die Nummer korrekt zurück. Dann muss man jetzt noch rausfinden, wo der Fehler im Dialplan liegt.

Wenn du es folgendermaßen änderst
Code:
exten => _0[1-9]XXX.,33,SetVar((EINTRAG=$[${EINTRAG} + 1]) 
exten => _0[1-9]XXX.,34,System(echo "${EINTRAG} ${ENUMTELENTRY${EINTRAG}}" > /tmp/debug) 
;exten => _0[1-9]XXX.,34,Playback(beep)  ; Playing beep means that this call isn't for free
was sagt dann /tmp/debug?

Sollte das Skript anstatt +49 lieber 0049 liefern?
 
[root@voip asterisk]# cat /tmp/debug
0
Also ziffer 0 kommt

Ja also in der dns zone kann man ja +49 oder 0049 schreiben aber ausgeben solltest du 0049 weil die capi es sonst nicht wählen kann :)
 
Stehen da zwei öffnende runde Klammern?
Code:
exten => _0[1-9]XXX.,33,SetVar((EINTRAG=$[${EINTRAG} + 1])
Wenn ja, dann dürfte das der Fehler sein. Ist dem so?

Ich werde das Skript dann bei Gelegenheit anpassen, so dass es 0049 statt +49 liefert. Bei mir hat dummerweise beides funktioniert. Ich hoffe, du kannst dich noch einen Augenblick gedulden, bis ich die Zeit für die Änderung finde.

Benno
 
Achso, vielleicht funktioniert bei dir folgendes:
Code:
exten => _0[1-9]XXX.,39,Dial(${MNET}/${MYMSN}:b00${ENUMTELENTRY${EINTRAG}:1},60,Ttr)
Damit sollten zwei Nullen vor die Nummer geschrieben werden, während das + abgeschnitten wird. Aus +49 wird also 0049. Ich hoffe, das funktioniert. Allerdings wird es wohl Problematisch, wenn jemand ENUM-Einträge ohne internationale Vorwahl ablegt. Deshalb werd ich das Skript noch ändern.

Ansonsten alle Probleme beseitigt?

EDIT: So, hier ist auch schon eine Testversion des geänderten Skripts. Ich bitte um Feedback, da ich es selbst nicht testen kann.
 

Anhänge

  • enumlookup_109.txt
    7.3 KB · Aufrufe: 1
Hallo,

Thx damit funzt es jetzt alles richtig.
Ich habe nur noch ein Problem hier er sagt zwar:
Called 4522xxxx:b004989427xxxx

Aber es klingelt nicht am tel.
In der capi.conf steht abe rnationalprefix=0 udn internaionalprefis=00 sollte die capi doch eigentlich verstehen.
 
Schön, dass das soweit schonmal funktioniert.
Die Variable ${MNET} enthält wahrscheinlich die Zeichenkette "CAPI", sehe ich das richtig? Dann sieht das Dial-Kommando für mich eigentlich richtig aus.
Ansonsten kann ich momentan schlecht weiterhelfen, da ich wie gesagt keinen Asterisk mehr laufen habe. Am besten hörst du dich diesbezüglich nebenan im Asterisk-ISDN-CAPI-Bereich nochmal um.

Also dann viel Erfolg!
Benno
 
Hallo,

kann mir Script-Unkundigem mal einer helfen?

das enumlookup.agi sagt:

/var/lib/asterisk/agi-bin/enumlookup.agi: line 276: [: !=: unary operator expected

Was läuft da falsch?
 
Hi,

welche Version benutzt du? In der aktuellen Version 0.23 ist Zeile 276 eine Leerzeile. Im Zweifelsfall kannst du mir dein Skript mal zuschicken.

Ciao!
Benno

EDIT: Aha, ich sehe da ein Problem in Zeile 277. Bitte mal diese Version hier ausprobieren und mir Bescheid geben, ob der Fehler immernoch auftritt! Vielen Dank!
 

Anhänge

  • enumlookup_287.txt
    7.3 KB · Aufrufe: 15
wrrdlbrrmpft schrieb:
EDIT: Aha, ich sehe da ein Problem in Zeile 277. Bitte mal diese Version hier ausprobieren und mir Bescheid geben, ob der Fehler immernoch auftritt!

Hallo Benno,

das ist aber ein toller Service hier!

Das neue Script läuft ohne Fehler durch.


Besten Dank, einen schönen Abend noch

Karl-Heinz
 
Ja, wünsche auch einen schönen Abend. Und danke für die Fehlermeldung! So kann ich endlich wieder mal eine neue Version hochladen. :)

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