Asterisk & alphanumerische nikotel-CIDNum

betateilchen

Grandstream-Guru
Mitglied seit
30 Jun 2004
Beiträge
12,882
Punkte für Reaktionen
0
Punkte
0
Hallo !

Hat jemand eine Idee, wie man Asterisk dazu bewegen kann, mit ankommenden alphanumerischen Rufnummern korrekt umzugehen ?

Bei eingehenden Nikotel-Anrufen wird nämlich der nikotel-Username als "Rufnummer" geschickt. Und der ist in den seltensten Fällen numerisch.

Asterisk ändert darauhin das "INVITE" und diese CallerIDNum taucht nirgends mehr auf. Das hat zur Folge, daß ich im Display meines Telefones dann "asterisk" als Anrufer stehen habe.

Code:
Reliably Transmitting (NAT) to 84.170.252.212:5060:
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 217.20.120.121:5060;branch=z9hG4bK14a5afe6;rport
From: "NT-BetaTeilchen" <sip:[email protected]>;tag=as169bb4dc
To: <sip:[email protected]>
Contact: <sip:[email protected]>
Call-ID: [email][email protected][/email]
Seq: 102 INVITEo debug
User-Agent: Asterisk PBX
Date: Sat, 18 Jun 2005 22:21:59 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Content-Type: application/sdp
Content-Length: 220

v=0
o=root 7601 7601 IN IP4 217.20.120.121
s=session
c=IN IP4 217.20.120.121
t=0 0
m=audio 17270 RTP/AVP 18 101
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -

---
 
Asterisk geht immer davon aus, dass die callerIDNum numerisch ist (wie der Name schon sagt). Du kannst versuchen, die Nummer in den CallerIDName dazuzusetzen.

Code:
SetCIDName(${CALLERIDNUM} ${CALLERIDNAME})

koennte evtl. funktionieren.
 
Das mit dem Übertragen der "CallerIDNum" in den "CallerIDName" war mir schon klar, das funktioniert auch. Aber das hilft mir nicht viel weiter.

Denn bei einkommenden Anrufen wird anhand der ankommenden Rufnummer auf einem LDAP-Server nachgeschlagen, ob es dazu einen passenden Namen gibt. Dieser steht dann schon im Feld CallerIDName.

Deshalb kann ich die nikotel-"Nummer" nicht einfach dort reinschreiben - höchstens zusätzlich (wie von Dir vorgeschlagen), aber dann wird das zu lang um komplett angezeigt zu werden. Außerdem steht dann immer noch "asterisk" im Display.

Wenn Asterisk in der Lage ist, an dieser Stelle das Wort "asterisk" hinzuschreiben und an das Endgerät zu übertragen, dann kann es doch nicht so schwierig sein, dort auch den nikotel-Namen zu übertragen :roll: will sagen - technisch kann * das schon, nur er macht es eben nicht.

Welcher Sinn steckt wohl hinter der Asterisk-Logik, daß CIDnum numerisch sein muß ?
 
betateilchen schrieb:
Welcher Sinn steckt wohl hinter der Asterisk-Logik, daß CIDnum numerisch sein muß ?

Ich vermute mal, dass es daher kommt, dass * aus den USA kommt und da gibt es bei den CallerID-Anzeigen ein Feld fuer die Nummer und eins fuer den Namen. Ich vermute mal, dass da das Nummern-Feld wirklich numerisch sein muss.

Bei ISDN sind alphanumerische Nummern im Standard AFAIK nicht verboten. Es wird wohl nur einfach nicht genutzt weil sich alphanumerische Nummern mit nem analogen Klapperwaehler nicht so besonders gut waehlen lassen. :)
 
So. Hab mir gerade mal ein wenig den Source angesehen. Such mal folgende Zeilen in channels/chan_sip.c (duerfte so ungefaehr Zeile 4000 sein):

Code:
        if (!l || (!ast_isphonenumber(l) && default_callerid[0]))
                        l = default_callerid;


Und aender das mal so ab:

Code:
        if (!l)
                        l = default_callerid;

Das koennte das Problem beheben und sollte eigentlich auch keine negativen Seiteneffekte haben. Ich frage mich gerade, wer das da rein gemacht hat!?
 
-- mal so vor mich hingedacht --

Die Anzeige des nikotel-Usernamens wäre im angegebenen Fall ja gar nicht so nützlich. Denn der Username läßt ja nicht zwangsläufig eine Kombination mit der Zusammensetzung der 99-Rufnummer herstellen. (das war urspünglich ein Denkfehler von mir, weil es bei meinen nikotel-Accounts zufällig so ist username<=>99username)

Da ich anhand des Usernamens ohnehin schon auf dem LDAP nachschaue, ist es ja kein Problem, dort auch die 99Nummer zu hinterlegen und die Abfrage im Fall von "nikotel-Anrufen" entsprechend abzuändern, damit mir dann der echte Name aus dem Adreßbuch (= CIDname) und die im LDAP gespeicherte 99xxx Nummer (= CIDnum) korrekt zur Verfügung stehen.

Damit ist dann zwar die Sache im Fall von nikotel erledigt. Trotzdem bleibt die Grundsatzfrage nach der möglichen Übertragung von alphanumerischen Rufnummern. Das sollte hoffentlich irgendwann möglich sein.
 
Ich werd mir die Sache evtl. in den naechsten Tagen noch mal ansehen und das dann mal auf der Developer-Mailingliste ansprechen.
 
Deine Source-Änderung werde ich im Laufe des Tages mal testen. Danke !
[hr:5512ccc6b6]
Edit von 02:20

Source-Änderung gemacht - und siehe da, nun kommen auch alphanumerische Rufnummern korrekt an :D

:groesste:
 
Kostenlos!

Statistik des Forums

Themen
246,997
Beiträge
2,260,522
Mitglieder
375,241
Neuestes Mitglied
Snake2001