dtmfbox (AB/CB/CT VoIP/ISDN/Analog)

Da fehlt noch das "Hook up" (oder ging der AB ran?).

Ich müsste da jetzt raten:

- MSN ist falsch. Die des Accounts müsste so lauten: "49xxxxxxxxxxxx". Ohne '+' oder Sonderzeichen.
- Anrufbeantworter ist nicht "aktiv" für den jew. Account.
- Alte Skriptdateien (eventuell das Addon aus dem dsmod Ordner /addons nicht gelöscht? Die Version steht im Kopf der Skripte: vi /var/dtmfbox/script/script_main.sh. Prüfe das mal bitte.)
 
Sorry, da lag der Fehler, in der MSN.
Da ich ein Telefonfachmann bin habe ich halt die MSN (die Rufnummer) eingetragen. Nicht aber Landes & Ortsvorwahl (ohne 0)
Jetzt gehts soweit, danke. Ein kleines Problem wäre da noch, der AB geht nicht sofort dran, obwohl eingestellt. Und wie ändere ich die Ansage ?, einfach hinkopieren ?
 
Das mit der MSN könnte man eventuell anders lösen. Bei ISDN ist es halt ohne Vorwahl und bei VoIP kommt es auf den Anbieter an. Deswegen musste ich das so dynamisch halten wie möglich (Benutzer muss es selbst eingeben). MSN sollte ich vielleicht in Rufnummer umbenennen - Mal sehen, ob ich solche fachmännischen Fehler bei der nächsten Version plausibilisieren kann...

Bei der Ansage hat sich nichts geändert. Das ist so wie in den alten Versionen. Die müsste man flashen, auf USB ablegen oder per wget nachladen. Die eingestellte Abhebezeit sollte funktionieren.
 
bodega schrieb:
kurzer Stand zur v0.4.0:
....
Ich will eigentlich nicht drängeln, bodega, du hattest aber selbst angekündigt, dass v0.4.0 schon quasi gibt. Kann man damit in den nächsten Tagen rechnen, oder sollte man lieber die 0.3.9 durchkompillieren und flashen?
Ich bin relativ neu in dtmfbox-Sachen, aber so wie ich es sehe, seit ihr mittlerweile sehr weit, dass ich es mir auch antun werde. Was mich in dem Zusammenhang interessieren würde, ist die Große, die dtmfbox in etwa im Image beansprucht (komprimiert oder nicht), denn ich würde gerne dtmfbox bei einer 7050 einsetzen. Ich brauche keine genauen Angaben, nur die Hausnummer. Ich hatte schon irgendwo gelesen, dass man dtmfbox prinzipiell bei einer 7050 einsetzen könnte. Mir ist klar, dass man damit nicht unbedingt die volle Palette (Anrufbeantworter usw.) benutzen sollte, aber darum geht es mir nicht. callback, calltrough - Funktionalitäten reichen schon aus.

MfG
 
Die Größe der Binary von v0.4 ist variabel:

- nur CAPI: ~300 kb
- CAPI und VoIP: ~600 kb
- CAPI/VoIP/ICE: ~700 kb

bei v0.3.9 lässt sich das noch nicht ändern.

Es gibt für v0.4 aber noch ein paar Punkte zu testen. Da ich eine Windows-Oberfläche für die dtmfbox erstellt habe, eröffnen sich dadurch auch wieder neue Möglichkeiten: also VoIP-/CAPI-Client und Callmonitor in Einem (ähnlich wie Phoner). Das GUI ist in C# geschrieben und steuert die Konsolen-Anwendung.

Es läuft schon ganz gut, nur ich bin erst zufrieden, wenn es meinen Ansprüchen genügt ;). Da ich der einzige Entwickler dieses Projektes bin (pjsip mal aussen vor gelassen), geht es halt nicht ganz so schnell.

Ich werde am WE ein Feedback posten. Eventuell kann ich da schon was rausgeben, doch versprechen kann ich nichts. Intern hat sich halt ziemlich viel geändert.

Was du dir nun "antust", bleibt dir überlassen. Die Standalone-Version lässt sich ebenso schnell deinstallieren wie installieren.

EDIT:
ok. v0.4 braucht noch ein wenig. Das GUI ist fertig, aber es müssen noch ein paar Dinge gemacht werden --> so :done:
 
Zuletzt bearbeitet:
ok, mit der Große habe ich nun selbst gesehen (ich hatte es mit 15.1 für eine 7170 mitkompilliert). Die Binary liegt unter /usr/sbin und ist (unkomprimmiert) in etwa so gross, wie du beschreibst. Das heißt für mich, in eine 7050 wird es ohne weiteres nicht rein passen. Spräche was dagegen, wenn ich dtmfbox ins RAM mit meinem Downloader nachlade? Als Startlevel hast du S40 im Makefile stehen, so wie bei normalen Paketen, sodass es nicht zu früh gestartet werden müsste und daher eigentlich gehen sollte.
Das einzige Problem, es könnte im RAM eng werden, wenn ich noch OpenVPN nachgeladen und am laufen habe... Aber testen werde ich es auf jeden Fall.

MfG
 
Irgendwie mag bei mir weder Callback noch Callthrough funktionieren...
Ich möchte vom Handy über einen Nikotel-Account einen Rückruf veranlassen (ISDN/Analog habe ich nicht.)
Der Rückruf soll auf meiner Genion-Festnetznummer erfolgen.
Unter Trigger-Nr. habe ich folgendes eingetragen:
0179xxxxxxx/023xxxxxxx/9926xxxxxxx

Auch .*179xxxxxxx oder ^.*179xxxxxxx$ (habe beides irgendwo gefunden) brachte keinen Erfolg.

9926xxxxxxx ist die interne Nikotel-Rufnummer, welche ich auch als MSN in der Account-Konfiguration der dtmfbox angegeben habe. Die Box registriert sich bei Nikotel, beim Anruf bekomme ich ein Freizeichen.

Code:
 13:17:33.256    voip_auth.c SIP registration successful (calamar0.nikotel.com), status=20
 13:17:33.257    voip_auth.c Next registration in 3785 sec
 13:18:04.238  voip_events.c RX-REQUEST 1056 bytes Request msg INVITE/cseq=102 (rdata0x50768c) from UDP 63.214.186.160:5060
 13:18:04.240  voip_events.c Incoming request (0179xxxxxxx:0 -> gnarfy:0)
 13:18:04.241  voip_events.c Create UAS dialog
 13:18:04.243  voip_events.c Create media capability
 13:18:04.245  voip_events.c Create invite session
 13:18:04.250  voip_events.c Call state changed to INCOMING [port=0]
 13:18:04.251  voip_events.c Respond stateless with code 180 (*ring*)
 13:18:04.254  voip_events.c Call EARLY [port=0, reason=0 (Default status message)]
 13:18:04.362 script_funcs.c Run script: /var/dtmfbox/script/script_main.sh CONNECT VOIP INCOMING 0 -1 "gnarfy" "[email protected]" &
 13:18:04.469 sip_endpoint.c Message Request msg INVITE/cseq=102 (rdata0x50768c) from 63.214.186.160:5060 was dropped/unhandled by any modules
 13:18:14.671  voip_events.c RX-REQUEST 549 bytes Request msg ACK/cseq=102 (rdata0x50768c) from UDP 63.214.186.160:5060
 13:18:14.672  voip_events.c ERR: Unable to handle request (2)!
 
Hallo Gnarfy,

interessanterweise überträgt Nikotel deinen Benutzernamen im From-Header (gnarfy). Die MSN unter des Accounts müsste demnach auch gnarfy lauten.

Wegen dem "Unhandled Request" braucht du dir keine Gedanken machen. Das ist nur eine SIP-Message, welche nicht unterstützt wird.

ps.: der Account-Name spielt beim Registrierungsprozess auch eine Rolle. Eventuell hier mal die Rufnummer hinterlegen, vielleicht ändert sich dann auch der From-Header.
 
Registrierung der dtmfbox bein 1und1 scheitert

Hallo Bodega,

bei mir schafft es die dtmfbox irgendwie nicht, sich bei meinem 1&1 Account zu registrieren. Die REGISTER-Message (ohne User/Passwort) wird vom Registrar mit 401 abgelehnt (das ist ja normal), aber die dtmfbox müßte dann ja noch einen zweiten Versuch machen, diesmal mit User+Passwort. Tut sie aber offenbar nicht.

Code:
 22:57:14.323       endpoint Request msg REGISTER/cseq=13392 (tdta0x553444) created.
 22:57:14.325    tsx0x55444c Transaction created for Request msg REGISTER/cseq=13393 (tdta0x553444)
 22:57:14.325    tsx0x55444c Sending Request msg REGISTER/cseq=13393 (tdta0x553444) in state Null
 22:57:14.326  sip_resolve.c DNS resolver not available, target 'sip.1und1.de:0' type=Unspecified will be resolved with gethostbyname()
 22:57:14.329    voip_ctrl.c Start VOIP listen loop...
 22:57:14.331  sip_resolve.c Target 'sip.1und1.de:0' type=Unspecified resolved to '212.227.15.197:5060' type=UDP
 22:57:14.333    tsx0x55444c State changed from Null to Calling, event=TX_MSG
 22:57:14.333    voip_auth.c SIP (TX-REGISTER):

REGISTER sip:sip.1und1.de SIP/2.0
Via: SIP/2.0/UDP 87.163.57.33:64259;rport;branch=z9hG4bKPj03970000000375cb6c55
Max-Forwards: 70
From: "1&1 411XXXXX" <sip:[email protected]>;tag=03970000000275cb6c55
To: <sip:[email protected]>
Call-ID: 03970000000175cb6c55
CSeq: 13393 REGISTER
User-Agent: dtmfbox v0.3.9
Contact: <sip:[email protected]:64259>;expires=300
Expires: 300
Content-Length:  0

 22:57:14.336    capi_ctrl.c (0xff) - Listen to CAPI incoming controller 1...
 22:57:14.338    capi_ctrl.c (0xff) - Listen to CAPI outgoing controller 1...
 22:57:14.339    capi_ctrl.c (0xff) - Listen to CAPI internal controller 3...
 22:57:14.340    capi_ctrl.c (CNF, CTRL 1, PLCI: 0) - CAPI_LISTEN
 22:57:14.340    capi_ctrl.c (CNF, CTRL 1, PLCI: 0) - CAPI_LISTEN
 22:57:14.341    capi_ctrl.c (CNF, CTRL 3, PLCI: 0) - CAPI_LISTEN
 22:57:14.413 sip_endpoint.c Processing incoming message: Response msg 401/REGISTER/cseq=13393 (rdata0x507a94)
 22:57:14.415    tsx0x55444c Incoming Response msg 401/REGISTER/cseq=13393 (rdata0x507a94) in state Calling
 22:57:14.415    tsx0x55444c State changed from Calling to Completed, event=RX_MSG
 22:57:14.416 sip_auth_clien Unable to set auth for tdta0x553444: can not find credential for 87.163.57.33/Digest
 22:57:14.417    voip_auth.c SIP (RX-REGISTER):

SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 87.163.57.33:64259;rport=64259;branch=z9hG4bKPj03970000000375cb6c55
From: "1&1 411XXXXX" <sip:[email protected]>;tag=03970000000275cb6c55
To: <sip:[email protected]>;tag=329cfeaa6ded039da25ff8cbb8668bd2.c7b9
Call-ID: 03970000000175cb6c55
CSeq: 13393 REGISTER
WWW-Authenticate: Digest realm="87.163.57.33", nonce="46c8afd6fe830ff5f76fb08febfab2409d879682"
Server: UI OpenSer
Content-Length: 0

 22:57:14.418    voip_auth.c ERR: SIP registration error (sip.1und1.de), status=12!
 22:57:14.418    voip_auth.c ERR: 401 - Unauthorized
 22:57:19.422    tsx0x55444c Timeout timer event
 22:57:19.422    tsx0x55444c State changed from Completed to Terminated, event=TIMER
 22:57:19.432    tsx0x55444c Timeout timer event
 22:57:19.432    tsx0x55444c State changed from Terminated to Destroyed, event=TIMER
 22:57:19.433   tdta0x553444 Destroying txdata Request msg REGISTER/cseq=13393 (tdta0x553444)
 22:57:19.433    tsx0x55444c Transaction destroyed!
 23:00:14.360       endpoint Request msg ACK/cseq=100 (tdta0x553444) created.
 23:00:14.361  sip_resolve.c DNS resolver not available, target 'sip.1und1.de:0' type=Unspecified will be resolved with gethostbyname()
 23:00:14.415  sip_resolve.c Target 'sip.1und1.de:0' type=Unspecified resolved to '212.227.15.231:5060' type=UDP
 23:00:14.416   tdta0x553444 Destroying txdata Request msg ACK/cseq=100 (tdta0x553444)
 23:00:14.417      dtmfbox.c Successfully sent keep-alive (sip.1und1.de)

Konfiguration:

[voip]
voip=1
voip_client=1
voip_registrar=0
voip_max_clients=4
voip_realm=XXXXX.dyndns.org
voip_udp_port=5061
voip_rtp_start=4000
voip_rtp_ports=4
voip_register_interval=300
voip_keep_alive=180
voip_use_vad=0
voip_ip_addr=
voip_stun=stun.1und1.de
voip_stun_port=3478
voip_ice=0

[msn1]
name=1&1 411XXXXX
msn=411XXXXX
type=voip
active=1
voip_registrar=sip.1und1.de
voip_realm=sip.1und1.de
voip_user=4989411XXXXX
voip_pass=geheim
voip_proxy=
voip_id=
voip_contact=


Ebenfalls seltsam finde ich die Meldung "sip_resolve.c DNS resolver not available", denn ein nslookup funktioniert auf der FRITZ!Box. Und in der Tat, wenn ich als Registrar/Realm einfach nur "1und1.de" statt "sip.1und1.de" angebe, dann erfolgt kein SRV-Lookup auf _sip._udp.1und1.de, sondern nur ein normaler A-Lookup auf 1und1.de, und letzterer liefert nicht den SIP-Server von 1und1, und der antwortet auf eine REGISTER-Message natürlich gar nicht.

Und auch bei "To: <sip:[email protected]>" in der REGISTER-Message wundert mich, dass hier meine eigene IP hinterm "@" eingesetzt wird, anstatt den Namen des Registrars zu benutzen, also "sip.1und1.de" oder "1und1.de" (stört aber vielleicht auch nicht :noidea:)

Irgendwelche Ideen?

Btw, die FRITZ!Box, auf der die dtmfbox läuft, hängt hinter einem NAT-Router.

Danke,
Gerhard
 
Zuletzt bearbeitet:
Hallo gfuer,

gfuer schrieb:
Die REGISTER-Message (ohne User/Passwort) wird vom Registrar mit 401 abgelehnt (das ist ja normal), aber die dtmfbox müßte dann ja noch einen zweiten Versuch machen, diesmal mit User+Passwort. Tut sie aber offenbar nicht.
Macht sie schon. Die ausgegebene SIP-Message ist sozusagen die Zweite. Die erste wird immer abgewiesen, deswegen wird diese nicht angezeigt. Im RX-Msg stehen die Credentials nicht mitdabei, deswegen etwas irreführend.

gfuer schrieb:
Ebenfalls seltsam finde ich die Meldung "sip_resolve.c DNS resolver not available", denn ein nslookup funktioniert auf der FRITZ!Box.

Ist mir auch schon aufgefallen. Mit PJSUA ist es das gleiche. Die DNS Auflösung klappt ja, nur bei manchen Providern (wie dus.net) muss man zur IP greifen. Bei 1und1 sollte das aber nicht scheitern. Falls doch, kannst du ja mal die IP des Registrars probieren.
EDIT: du hast mich hier auf etwas aufmerksam gemacht: da ich das Programm größtenteils unter Windows teste, schaue ich mir die DNS Auflösung da nochmal an.

gfuer schrieb:
Und auch bei "To: <sip:[email protected]>" in der REGISTER-Message wundert mich, dass hier meine eigene IP hinterm "@" eingesetzt wird

Jep. Die ID musst du in dem Fall befüllen. 1&1 Beispielaccount. Die MSN müsste wie der Username lauten.
 
Zuletzt bearbeitet:
bodega schrieb:
du hast mich hier auf etwas aufmerksam gemacht: da ich das Programm größtenteils unter Windows teste, schaue ich mir die DNS Auflösung da nochmal an.
Ich finde nirgendwo im Code der dtmfbox, dass ein Nameserver eingestellt würde. Und eine Variable "resolver" is zwar in einem Header-File definiert, wird aber sonst im Code nicht benutzt.

$ grep -i nameserver *
$ grep -i resolver *
voip_ctrl.h: pj_dns_resolver *resolver;


Sollte man sich vielleicht aus /etc/resolv.conf die Nameserver rausholen (falls die Datei existiert, und "nameserver"-Einträge existieren) und diese dem pjproject bekannt geben. Offenbar benutzt pjproject nicht die Unix-Resolver-Library (die würde ja /etc/resolv.conf honorieren), sondern erfindet das Rad neu (ist ja u.a. für "embedded" Umgebungen gedacht, und die Entwickler wollten so wenig wie möglich voraussetzen).
 
Die Datei /etc/resolv.conf sollte bereits berücksichtigt werden, durch die Funktion "gethostbyname" (pj_gethostbyname). - siehe hier.

Auf meinem Windows-PC konnte ich mich über den Hostnamen sip.1und1.de ohne Probleme anmelden, auf der FB ging das nur mittels IP, soweit ich das noch in Erinnerung habe. Es kam dann immer "Authorization failed".

Eventuell liesse sich das über extra-DNS Einträge erschlagen (neben denen in der resolv.conf). Schlimm ist es nicht, es sei denn, die IP wechselt alle paar Wochen :eek:

Mal heute abend schauen..
 
Zuletzt bearbeitet:
gethostbyame() macht aber nur normale "A" Lookups (d.h. Hostname -> IP-Adresse).

Aber im Zusammenhang mit SIP werden üblicher Weise auch "SRV"-Lookups benutzt, um z.B. nur "1und1.de" vorzugeben, und auch die Hostnamen und die SIP-Port-Nummern der SIP-Server von "1und1.de" über DNS zu ermitteln, z.B.

$ host -t SRV _sip._udp.1und1.de
_sip._udp.1und1.de SRV 0 0 5060 sipbalance1.1und1.de.
_sip._udp.1und1.de SRV 0 0 5060 sipbalance0.1und1.de.

(siehe pjsip/src/pjsip/sip_resolve.c).

Und da das über gethostbyname() hinaus geht, muß man dazu die Resolver-Library direkt konsultieren. Entweder die von Unix (res_init(), res_query(), etc. - diese Funktionen honorieren auch /etc/resolv.conf), bzw. pjproject hat diese Funktionalität selbst implementiert, und dazu muß man der pjlib die Nameserver bekannt geben (auf low-Level habe ich dazu pj_dns_resolver_set_ns() gefunden, oder mit pjsua kann man in der pjsua_config Struktur die Nameserver beim pjsua_init() mitgeben).

Grüße
Gerhard
 
Hi Gerhard,

danke für deine Hilfe. SRV Einträge werden in der Tat nicht berücksichtigt. Da war ich vom "A" Lookup etwas geblendet. Schwer zu implementieren sollte das aber nicht sein.

Schön wäre wohl auch noch eine ENUM Abfrage - leider kann pjsip das noch nicht und DNS ist, wie du merkst, nicht mein Steckenpferd :(

btw: die dtmfbox ist auf der Low-Level API von PJSIP aufgebaut. Das macht es zwar etwas schwieriger, aber dafür auch äußerst flexibel.

EDIT:
Ok, den Resolver habe ich nun implementiert. Wenn der SRV Lookup nicht klappt, springt er zurück auf A Lookup. Ich habe mal 4 Nameserver als Config-Eintrag vorgesehen. Fehlt nur noch NAPTR ... :)
 
Zuletzt bearbeitet:
Hi,
gibts irgendwo eine Gesamtübersicht aller Features ?
 
Das könnte ich noch machen. Das Problem ist nur, dass die Features durch Skripte geändert werden können. Ich müsste das dann noch etwas genauer spezifizieren.

Kommt aber auf die Liste, da es ein wichtiger Punkt ist.
 
Wäre (mit dem Anrufbeantworter) eine MWI-Signalisierung am internen ISDN-Bus möglich?
 
busybox-httpd

hallo,
nach einer längeren fbox pause, hab ich mal wieder das basteln angefangen und die geniale dtmfbox ausprobiert. ein echtes kompliment an bodega, von dem was ich hier gelesen hab hat sich ja einiges getan und die box hat schon viele features bekommen.
nur leider habe ich auf meiner fbf 7170 (fw 29.04.01, ziemlich alt....) das problem, dass der httpd nicht starten will.... :
Start Webserver...
/var/dtmfbox/busybox-httpd: can't load library 'libgcc_s.so.1'
done! Listening on port 6767!

... aber er läuft nicht auf port 6767, ist in ps auch nicht zu sehen.
ich hab auf dem usb stick von meinen eigenen experimenten noch ne libgcc_s rumliegen, jedoch wahrscheinlich zu alt, also wenn ich die verwende dann gibts halt nen SIGSEGV
@bodega: vllt. kannst du einfach deine libgcc_s, die du benutzt hast irgendwo hochladen?
vllt hilft das ja, ansonsten wär ich über ratschläge dankbar .. (ausser vllt. neue fw, gut ich gebs zu das wär eh angebracht schon wegen sicherheitslücken etc, aber ich hab ein paar eigene addons noch laufen, dns usw. und ich bin immer noch der meinung "never touch a running system..". zwar sollte alles weiterlaufen, wenn ich die debug.cfg in die neue fw reinbringe, aber naja...... ;-) )

EDIT: ich benutze 0.3.9 dtmfbox und die usb version

EDIT2: ich bekomme lauter "can't load libraries.." alles mögliche, libgcc_s, libnsl, libm... auch beim aufruf vom dtmfbox binary. wenn ich mit nem debian mir das executable anschaue: ldd dtmfbox oder auch der httpd, dann sagt er "not a dynamic executable" ... ich versteh die welt nicht mehr...? static binaries, die libraries nicht laden können!!!!!!??????
 
Zuletzt bearbeitet:
@bodega oder wers noch kennen könnte
habe seit neuestem immer die dtmf box auf cpu vollast...
5 dtmfboxen sind lieb bei 0% und eine macht immer volle cpulast...
kennt das wer, bzw. wie kireg ich das weg...
dtmfbox iss 0.3.9 ausm 15.1 mod ohne espeak und mit usb platte
braucht ihr noch andere infos?
zur info vielleicht noch...die box startet auf meinen wunsch jede nacht um 3 und dann starten alle meine diesnte weder die auf auto stehen...aber das sollte doch kene probs bringen, oder?
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    175 KB · Aufrufe: 23
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.