Hints funktionieren nur mit type=peer

schirmuli

Neuer User
Mitglied seit
19 Sep 2005
Beiträge
84
Punkte für Reaktionen
0
Punkte
6
Ich habe da ein kleines Problem
und zwar verwende ich Asterisk 1.4.21 und bin berade dabei hints einzurichten, leider funktioniert das Ganze nur wenn ich in der sip.conf type=peer setze, bei type=friend verändert sich der Status nur wenn ich angerufen werde aber nicht beim raustelefonieren.


sip.conf
Code:
[general]
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=ulaw
language=de
allowsubscribe=yes
notifybusy=yes
notifyringing=yes
notifyhold=yes
useclientcode=yes
tos_audio=0xEF
tos_video=0xEF
tos_sip=0xEF
realm=asterisk


[264]
type=friend
secret=geheim
host=dynamic
context=schirmuli
subscribecontext=blf

entsprechende zeile aus extensions.ael

Code:
context blf {

hint(SIP/261) _261 => Dial(SIP/261);
hint(SIP/264) _264 => Dial(SIP/264);

}


Hat jemand einen Tipp wo ich suchen könnte oder werden weitere Informationen benötigt?

Danke im Vorraus!!

Gruß
 
Hallo,

ich hätte da mal 2 ansätze:

1. "264" ist ein telefon, oder? dann sollte es sich ja auf der asterisk registrieren, dann reicht es, dass du es auf "type=peer" lässt, bei der registrierung des telefons legt asterisk automatisch einen zweiten eintrag im memory für die user-konfig an (was ja "type=friend" ohne registrierung macht). "type=friend" brauchst du nur, wenn keine registrierung möglich ist, z.b. anbindung eines sip-providers für ein- und ausgehende calls.

2. gib mal in deiner sip.conf den parameter "limitonpeers" im [general] abschnitt dazu:
Code:
limitonpeers = yes
und gib bei deinem abschnitt für das telefon
Code:
call-limit = 999
dazu, kann mich erinnern, dass da mal was war...

grüße,
laureen
 
type=friend habe ich, weil ich mit einigen Telefonen an mehreren Accounts angemeldet bin, wenn ich type=peer setze funktioniert bei diesen Telefonen AUSGEHEND nur EINE Nummer.


Wenn du dazu auch net Idee hast währ ich Glücklich...


Gruß
 
verstehe ich nicht ganz wozu das, kannst das mal ein wenig genauer erklären? welche telefone verwendest du denn? die meisten telefone können doch mehrere accounts (registrierungen) verwalten?!?!?!
hast du das mit dem call-limit ausprobiert?

grüße,
laureen
 
tja, ich verstehe das auch nicht so recht.
Wenn ich z.b. 3 Sip Accounts auf peer stelle und diese dann alle 3 bei meiner FB-Fon eintrage, kann ich nur über einen raustelefonieren.
Bei meinem AAstra 55i habe ich das gleiche Problem, 2 Accounts eingetragen und nur einer funktioniert ausgehend, eingehend habe ich keine Probleme.


Jetzt habe ich es gerade nochmal probiert und wie ein wunder gibt es keine Probleme mehr?!?!?

Aber dein Tipp mit "limitonpeers=yes" hat auch mit "friend" gefruchtet, irgendwie interresant sobald ich die Sache mal etwas ruhen lasse klärt sie sich von selbst...


Danke für die Aufmerksamkeit :-)
 
tja, ich verstehe das auch nicht so recht.
Wenn ich z.b. 3 Sip Accounts auf peer stelle und diese dann alle 3 bei meiner FB-Fon eintrage, kann ich nur über einen raustelefonieren.
Bei meinem AAstra 55i habe ich das gleiche Problem, 2 Accounts eingetragen und nur einer funktioniert ausgehend, eingehend habe ich keine Probleme.


Jetzt habe ich es gerade nochmal probiert und wie ein wunder gibt es keine Probleme mehr?!?!?

Aber dein Tipp mit "limitonpeers=yes" hat auch mit "friend" gefruchtet, irgendwie interresant sobald ich die Sache mal etwas ruhen lasse klärt sie sich von selbst...


Danke für die Aufmerksamkeit :-)


*edit*
Tja, so kanns gehn, eben hab ich mich noch gewundert warum es "einfach so" geht da fällt mir aus WIESO, ich hatte nämlich bei dem entsprechenden User immer noch friend fesezt.
wenn ich überall peer setze bekomme ich bei einer Nummer immer

Code:
[Jun 22 18:10:59] WARNING[1585]: chan_sip.c:8507 check_auth: username mismatch, have <262>, digest has <261>
[Jun 22 18:10:59] NOTICE[1585]: chan_sip.c:13971 handle_request_invite: Failed to authenticate user "261" <sip:[email protected]:5060>;tag=023c5f3762

Nach dem zurückstellen auf friend ist wieder alles "OK"

Gruß
 
schau dir mal deine sip.conf genau an, damit der name des peers (in der eckigen klammer) gleich ist wie der parameter "username", ich könnte mir vorstellen, dass es da irgendwo einen tippfehler gibt, oder ev. auch in der konfig im telefon, wenn du den parameter "username=" nicht in der sip.conf im abschnitt für diesen peer (oder friend) definiert hast. kannst mal den vollständigen abschnitt der sip.conf posten, in dem du den peer (oder friend) "[261]" konfiguriert hast?
welches telefon verwendest du für diesen peer (friend)?

grüße,
laureen
 
Hallo schirmuli,
das von die beschriebene Problem habe ich auch.
Das Problem taucht nur bei ausgehende Anrufen mit dem type=friend auf.
Stellt man den type auf peer, werden auch ausgehende Anrufe per hints signalisiert.
Ich habe das Problem in der Datei chan_sip.c in Zeile 3220 zurückgeführt.
Das gilt natürlich für die von die angegebene Version 1.4.21.2.

In der entsprechenden Codezeile wird mit find_user ... die sip_user Struktur gefunden und im folgenden if Abschnitt auch benutzt.
Es müsste meiner Meinung nach aber sip_peer benutzt werden.
Im Folgenden ist der Original-Abschnitt zu sehen:

/* Check the list of users only for incoming calls */
if (global_limitonpeers == FALSE && !outgoing && (u = find_user(name, 1))) {
inuse = &u->inUse;
call_limit = &u->call_limit;
inringing = NULL;​
} else if ( (p = find_peer(ast_strlen_zero(fup->peername) ? name : fup->peername, NULL, 1) ) ) { /* Try to find peer */
inuse = &p->inUse;
call_limit = &p->call_limit;
inringing = &p->inRinging;
ast_copy_string(name, fup->peername, sizeof(name));​
}

Die erste Zeile mit der if-Anweisung habe ich noch die Verknüpfung mit p==NULL hinzugefügt, sodass der Block nun so aussieht:


p = find_peer(ast_strlen_zero(fup->peername) ? name : fup->peername, NULL, 1) ) ;
/* Check the list of users only for incoming calls */
if (global_limitonpeers == FALSE && !outgoing && (u = find_user(name, 1)) && p==NULL) {
inuse = &u->inUse;
call_limit = &u->call_limit;
inringing = NULL;​
} else if ( (p = find_peer(ast_strlen_zero(fup->peername) ? name : fup->peername, NULL, 1) ) ) { /* Try to find peer */
inuse = &p->inUse;
call_limit = &p->call_limit;
inringing = &p->inRinging;
ast_copy_string(name, fup->peername, sizeof(name));​
}

So funktionieren jetzt auch die ausgehenden hints mit mehreren Sip-Accounts.
Ich habe hier 7 Aaastra 57i und ein Siemens C470IP mit mehreren Accounts konfiguriert.

Vielleicht hast du das Problem ja auch mittlerweile anders gelöst.

minufi
 
BTW: Wenn das mit diesem Bugfix funktioniert, kannst du das vielleicht im bugtracker eintragen, damit das gefixt werden kann?

Thx
Crea
 
Kostenlos!

Statistik des Forums

Themen
248,889
Beiträge
2,304,001
Mitglieder
378,568
Neuestes Mitglied
me2k