BRIstuff 0.4.0-test4(* 1.4.9) overlapdial

erdt_ch

Neuer User
Mitglied seit
8 Okt 2007
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo!

ich habe in der zapata.conf folgende Einstellungen:

prilocaldialplan=unknown
echocancel=yes
immediate=no
usecallingpres=yes
overlapdial=yes

Und trozdem kommt folgende Meldung im CLI wenn ich von einer analogen Gegenstelle anrufe!



-- Accepting overlap voice call from '026XXXX50' to 's' on channel 0/1, span 1
-- Starting simple switch on 'Zap/1-1'

Vom Händy bzw. ISDN Gegenstelle geht alles super!

ich hoffe ihr könnt mir helfen!
 
Ich verstehe jetzt grad dein problem nicht so genau....
 
Hallo

Ich habe einen Asterisk Server mit einer quadBRI im TE ptp Mode die mit der TeleKom verbunden ist!

wenn ich mit dem Händy von außen auf eine Duchwahl anrufe geht alles wunderbar!

aber wenn ich von zb: analogen Fax eines Kunden ein Fax an die asterisk senden will (DW120) kommt die duchwachl bei der Asterisk nicht mehr an !

Alles was Overlap verwendet kommt in der Asterisk nicht an !
Blockwahl geht ohne Probleme!


ich hoffe ich habe das jetzt besser beschrieben !
ist ja nicht so einfach bei den vielen möglichkeiten etwas mit asterisk zu amchen ! :)

LG
 
hallo,
ist scheinbar ein fehler im bristuff paket welcher bei junghans allerdings bekannt ist. im bristuff paket die datei lippri.patch editieren und folgendes
suchen:

if (c->ourcallstate != c->sugcallstate) {
pri_error(pri, "updating callstate, peercallstate
%d to %d\n", c->peercallstate, c->sugcallstate);
c->ourcallstate = c->sugcallstate;

dann wie folgt abändern:

if (c->peercallstate != c->sugcallstate) {
pri_error(pri, "updating callstate, peercallstate
%d to %d\n", c->peercallstate, c->sugcallstate);
c->peercallstate = c->sugcallstate;
if ((c->sugcallstate != Q931_CALL_STATE_ACTIVE)
&&(c->sugcallstate != Q931_CALL_STATE_CALL_INITIATED)) {
/* pass hangup to upper layer! */
if (c->alive) {
pri->ev.e = PRI_EVENT_HANGUP;
res = Q931_RES_HAVEEVENT;
c->alive = 0;
} else if (c->sendhangupack) {
res = Q931_RES_HAVEEVENT;
pri->ev.e = PRI_EVENT_HANGUP_ACK;
q931_hangup(pri, c, c->cause);
} else {
q931_hangup(pri, c, c->cause);
res = 0;
}
if (res)
return res;
}

}
break;

hat bei mir bei dem problem jedenfalls geholfen.
so und nun muß ich los ... bin in eile.

gruss csd
 
@csd

Um welche libpri-Version handelt es sich?
In der 1.4.1 kann ich diese statements nicht finden!
 
Die libpri.patch vom Bristuff Paket. Da stehts drin.

gruss csd
 
Hallo,

ist ja interessant! Kommt von Junghanns demnächst mal ein test5 der 0.4.0 Version?

Ich habe mit dem test4 nämlich auch ein Problem, und zwar mit den Hints. Es kann sein, dass für ein Gerät keine Hints mehr an die Subscriber verschickt werden und dieser Hint auf dem Status "Hold" hängen bleibt.

Genau dieser Fehler wurde HIER beschrieben und von den Asterisk-Entwicklern als gefixt gemeldet, schon für die Version 1.4.1! Kann es sein, dass die Junghanns-Leute diesen Fehler wieder eingebaut haben in ihren Patches?
Immerhin ist die 0.4.0-test4 ja auf Asterisk 1.4.9-Basis!

Oder hat sonst jemand ne Ahnung, warum bei mir angeblich gefixte Bugs auftreten?

Danke!

Grüße,
DomRoc
 
Netview schrieb:
@csd

Um welche libpri-Version handelt es sich?
In der 1.4.1 kann ich diese statements nicht finden!

Ich kann diese Statements auch nicht in der libpri.patch finden???

Der Name "sugcallstate" kommt bei mir in der libpri.patch z.B. überhaupt garnicht vor!
 
Kann ich bestätigen. Der o.g. Patch ist für die aktuelle libpri.patch nicht brauchbar.
 
Hallo, der von mir beschriebene patch ist für die bristuff version 03xx

gruss csd

ps, war ein fehler meiner seits.
 
Gibt es so einen Patch nun auch für die aktuelle Libpri?
 
Naja, das habe ich gemacht. Es ging auch alles, außer das Anrufen von Handys! Wenn man dann ein Handy anruft, klingelt das auch, aber wenn man dann das Handy abnimmt, klingelt das andere Telefon einfach weiter...

Ich benutze Asterisk 1.4.23, vielleicht hat man das Problem mit anderen Asterisk-Versionen nicht.
 
@fsiggi

Das muss allerdings andere Gründe haben - bei Anrufen auf's Handy habe ich dies nicht feststellen können!

Aktuell ist übrigens die 1.4.13 - die 1.4.23 liegt noch weit in der Zukunft!

Hast du denn die patches aus dem bristuff-test4 (war für * 1.4.9) sauber in die 1.4.13 implementiert?
 
@Netview

Ähh, klar, 1.4.13. Patches ja klar. Ich hatte allerdings libpri 1.2.3, nicht 1.2.4, vielleicht lag es daran. Werde mal 1.2.4 probieren.
 
Nein - es gibt derzeit keinen patch für die aktuelle libpri!

Aber folgende Lösung funktioniert:
http://www.ip-phone-forum.de/showpost.php?p=940488&postcount=33

Laut Mitteilung von Junghanns (per Mail) wird es jedoch in diesem Jahr noch eine aktuellere bristuff-Version geben!


Das mit der neuen Version ist ja interessant, hoffen wir also mal das Beste!
Wurde der Release-Termin präzisiert? :)

Den Tip mit der alten Libpri werd ich dann mal ausprobieren und das ganze vorsorglich austauschen, vielen Dank!
Momentan hängt der Asterisk hier noch garnicht direkt an den NTBAs, aber ich gehe mal stark davon aus, dass ich keine Wunderversion vom BRIstuff im Einsatz habe und der Bug mit dem Overlapdial auch bei mir aufgetreten wäre!
 
Junghanns hat bzgl. Termine noch nie eine verbindliche Zusage gegeben (ich erinnere nur an den bristuff für * 1.4 der pünkltlich zur Cebit erscheinen sollte :mrgreen: ).
 
Soweit so gut!

Zumindest geht damit jetzt overlapdial mit libpri-1.4.2, bleibt jedoch noch immer das cause 18 Problem :-(

http://www.ip-phone-forum.de/showthread.php?t=143858&highlight=cause

D.h. die ISDN-Geräte klingeln nur ca. 3 mal und dann wird er channel abgebaut mit dem berüchtigten cause 18.

EDIT:

Mit folgendendem patch ist dann der cause 18 auch weg:
Code:
--- q931.c.original     2007-11-20 01:18:55.000000000 +0100
+++ q931.c      2007-11-20 01:34:02.000000000 +0100
@@ -3310,31 +3310,6 @@
        return send_message(pri, c, Q931_SETUP_ACKNOWLEDGE, connect_ies);
 }

-static void pri_setup_response_timeout(void *data)
-{
-       struct q931_call *c = data;
-       struct pri *pri = NULL;
-       if (!c) return;
-       pri = c->pri;
-       if (!pri) return;
-       c->alive = 1;
-       c->cause = PRI_CAUSE_NO_USER_RESPONSE;
-       if (pri->debug & PRI_DEBUG_Q931_STATE)
-               pri_message(pri, "No response to SETUP message\n");
-       pri->schedev = 1;
-       pri->ev.e = PRI_EVENT_HANGUP;
-       pri->ev.hangup.channel = c->channelno;
-       pri->ev.hangup.cref = c->cr;
-       pri->ev.hangup.aoc_units = -1;
-       if (c->cause == -1) {
-           pri->ev.hangup.cause = PRI_CAUSE_SWITCH_CONGESTION;
-       } else {
-           pri->ev.hangup.cause = c->cause;
-       }
-       pri->ev.hangup.call = c;
-       q931_hangup(pri, c, c->cause);
-}
-
 static void pri_connect_timeout(void *data)
 {
        struct q931_call *c = data;
@@ -3636,8 +3611,6 @@
                c->sendhangupack = 1;
                UPDATE_OURCALLSTATE(pri, c, Q931_CALL_STATE_CALL_INITIATED);
                c->peercallstate = Q931_CALL_STATE_OVERLAP_SENDING;
-               c->t303timer = pri_schedule_event(pri, pri->timers[PRI_TIMER_T303], pri_setup_response_timeout, c);
-               c->t303running = 1;
        }
        return res;

;-)
 
Ich habe mal hier den source für die aktuelle libpri-1.4.2 angeheftet mit der overlapdial geht und der cause 18 beseitigt ist!

Bitte beachten: q931.c beinhaltet auch den cause 18 patch - sollte es damit Probleme geben dann dieses modul durch q931.c.original ersetzen. Damit hat man dann den von jandings geposteten Stand 'Rev 4835' aus dem debian-forum!
 

Anhänge

  • libpri-1.4.2.zip
    240.3 KB · Aufrufe: 71
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.