Re: [SPAM] - RE: Bayonne Globalcall TASKFAIL and TRUNK_CALL_FAILURE - Bayesian Filter detected spam
David Sugar <[email protected]> Thu, 19 Jan 2006 13:35:24 -0500
| Newsgroups | gmane.comp.gnu.bayonne.devel |
|---|---|
| Message-ID | <[email protected]> |
The original point was it may also be in a scripting state, so that it
can handle ^hangup or exit handlers. But this seems to cover the
correct cases. This is essentially what I was suggesting, introducing a
flag like this gc_ResetLineDev to track when the port has been "cleared"
in mid-processing outside of any normal call termination.
Julien Chavanton wrote:
>
>
>When there is a TASKFAIL I always reset the port since it is 99% short calls/abandon calls.
>
>
>
>case GCEV_TASKFAIL:
>
> trunk->getName(buffer);
>
> slog(Slog::levelError) << buffer << ": GCEV_TASKFAIL HDL:" << metaevent.linedev << endl;
>
> trunk->UpdateStatus(trunk->id, metaevent.crn, "TASKFAIL");
>
> trunk->gcResetLineDev = 1;
>
> gc_ResetLineDev(linedev, EV_ASYNC);
>
> break;
>
>
>
>
>
>I have a flag (defined in driver.h trunk class) used to keep track of the fact that the port is resting.
>
>trunk->gcResetLineDev
>
>
>
>
>
>I reset the flag to 0 only when I receive another call because even if GCEV_RESETLINEDEV was received
>
>Bayonne may still be in another state "hangup" or "idle"
>
>
>
>case GCEV_OFFERED:
>
> trunk->gcResetLineDev = 0;
>
>
>
>
>
>Now I check this flag at several places in globalcall/trunk.cpp
>
>
>
>// Initialize in Trunk constructor
>
>DialogicTrunk::DialogicTrunk(int id, devices_t *devif) :
>
>TimerPort(), Trunk(id, 0, devif->span), Thread(0), URLAudio(), AudioService()
>
>{
>
> gcResetLineDev = 0;
>
>. . .
>
>
>
>
>
>// If acceptcall is failing I immediately set the flag because Bayonne may go to hangup to fast.
>
>// This is where most of the short call problem take place.
>
>if(gc_AcceptCall(crn, 0, EV_ASYNC) < 0)
>
> {
>
> slog (Slog::levelError) <<"dx("<<id<<"):"<<"gc_AcceptCall("<<crn<<") == FAILURE call state:"<<call_state<< endl;
>
> gc_ResetLineDev(linedev, EV_ASYNC);
>
> gcResetLineDev=1;
>
> slog(Slog::levelError) <<"dx("<<id<<"):"<<"gc_ResetLineDev()"<<endl;
>
> postGCError("gc_AcceptCall");
>
> return false;
>
> }
>
>. . .
>
>
>
>// Samething with answer
>
>// This is also where most of the short call problem take place.
>
>if(gc_AnswerCall(crn, 0, EV_ASYNC) < 0)
>
> {
>
> slog(Slog::levelError) << "dx(" << id << "): " <<"gc_AnserCall("<<crn<<") == FAILURE"<<endl;
>
> postGCError("gc_AnswerCall");
>
> gcResetLineDev=1;
>
> gc_ResetLineDev(linedev, EV_ASYNC);
>
> slog(Slog::levelDebug) << "dx(" << id << "): " <<"gc_ResetLineDev()"<<endl;
>
> return false;
>
> }
>
>. . .
>
>
>
>// Now if there was a taskail Bayonne would not know and will try an hangup anyway this is why I check the flag here as well
>
>bool DialogicTrunk::hangupCall(void)
>
>{
>
> int cause;
>
>
>
> if(!Trunk::flags.offhook && !_accepted && !gcResetLineDev)
>
> return false;
>
>. . .
>
>
>
>// Samething for releaseCall Bayonne in "idle" state
>
>void DialogicTrunk::releaseCall(void)
>
>{
>
> _disconnecting = false;
>
> int call_state;
>
>
>
> if(gcResetLineDev){
>
> slog(Slog::levelError) << "dx(" << id << "): " <<"Device reseting ignoring gc_ReleaseCallEx"<<endl;
>
> TrunkEvent event;
>
> event.id = TRUNK_CALL_RELEASE;
>
> postEvent(&event);
>
> return;
>
> }
>
>. . .
>
>
>
>// And if someone is doing a port reset
>
>void DialogicTrunk::resetChannel(void)
>
>{
>
> gcResetLineDev = 1;
>
> gc_ResetLineDev(linedev, EV_ASYNC);
>
>
>
> slog(Slog::levelError) << "dx(" << id << "): " <<"gc_ResetLineDev()"<<endl;
>
>}
>
>. . .
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>[root@BAY-MTL3 globalcall]# grep gcResetLineDev *
>
>driver.cpp: trunk->gcResetLineDev = 1;
>
>driver.cpp: trunk->gcResetLineDev = 0;
>
>driver.h: bool gcResetLineDev;
>
>Binary file globalcall.ivr matches
>
>trunk.cpp: gcResetLineDev = 0;
>
>trunk.cpp: gcResetLineDev=1;
>
>trunk.cpp: gcResetLineDev=1;
>
>trunk.cpp: if(!Trunk::flags.offhook && !_accepted && !gcResetLineDev)
>
>trunk.cpp: if(gcResetLineDev){
>
>trunk.cpp: if(gcResetLineDev){
>
>trunk.cpp: gcResetLineDev = 1;
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>-----Original Message-----
>From: Mladenovic Zoran [mailto:[email protected]]
>Sent: January 17, 2006 5:20 AM
>To: Julien Chavanton; David Sugar
>Cc: [email protected]
>Subject: RE: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and TRUNK_CALL_FAILURE - Bayesian Filter detected spam
>
>
>
>We are using dm3 DMW1200 E1 cards with external SIU520 for signaling. In order to make everything work, driver.cpp need's to be changed to open ss7 device (":L_SS7:N_dtiB%dT%d:P_%s:V_%s"). trunk.cpp was also changed, for parsing additional messages in IAMa and applying eACM to achieve charge free calls. If interested, I can post that changes.
>
>
>
>REL is release and RLC is release complete ISUP message. I'm interested how you solve short call properly. Can you send me changes you've made?
>
>
>
>Zoran
>
>
>
>-----Original Message-----
>
>From: Julien Chavanton [mailto:[email protected]]
>
>Sent: Saturday, January 14, 2006 2:16 AM
>
>To: Mladenoviè Zoran; David Sugar
>
>Cc: [email protected]
>
>Subject: RE: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and TRUNK_CALL_FAILURE - Bayesian Filter detected spam
>
>
>
>This is interresting,
>
>
>
>You are using globalcall with SS7, can you let us know what drivers version and board you are using.
>
>I do not know bout REL or RLC
>
>
>
>I know the fix I use are working with Globalcall/Isdn.
>
>1.000.000 calls and 99% asr with all the Ports/DS0 still running.
>
>Performance is good even if I am still running redhat 7.3 (I should make dialogic work on redhat9 at least since the threading as been improved).
>
>
>
>If this is a real problem for you I could verify the CVS version I am still using a modified bayonne-1.2.13-OWI.tar.gz (Because there was to much quick customization requirement for us, I did not follow the Bayonne structure enough whe implementing change.)
>
>
>
>However I could verify the CVS version to see if the 2 problems I have indentified are fixed.
>
>1 - Short calls and abandon calls handling.
>
>2 - Multiple CRN's support
>
>
>
>I would recommend activating globalcall event logging it is always good to know "Bayonne state" and "Globalcall state" when a problem take place.
>
>Globalcall can behave abnormaly when there is shortcall and abandon calls but with proper handling no problem.
>
>What I did was to use syslog-ng over the network to keep full logging while running lots of traffic.
>
>
>
>
>
>Julien
>
>
>
>
>
>
>
> -----Original Message-----
>
> From: bayonne-devel-bounces+j.chavanton=oneworldinteractive.com@gnu.org on behalf of Mladenoviè Zoran
>
> Sent: Wed 1/11/2006 04:22 PM
>
> To: David Sugar
>
> Cc: [email protected]
>
> Subject: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and TRUNK_CALL_FAILURE - Bayesian Filter detected spam
>
>
>
>
>
>
>
> Cool...I have some "filthy" services running on top of 20050116 release (odbc...) and with couple of 100k calls per day this is not so rare event. Beside that it is rock stable.
>
>
>
> Zoran
>
>
>
> -----Original Message-----
>
> From: [email protected] [mailto:[email protected]] On Behalf Of David Sugar
>
> Sent: Wednesday, January 11, 2006 7:24 PM
>
> To: Mladenoviè Zoran
>
> Cc: [email protected]
>
> Subject: Re: [Bayonne-devel] Bayonne Globalcall TASKFAIL and TRUNK_CALL_FAILURE
>
>
>
> I suspect this issue is related to what I am thinking of with handling of call state in gc, especially for short calls, vs how the Bayonne state machine ends up processing them and what Bayonne believes the call state is. I may jump all the way back to 1.2.11, and roll forward some changes selectivily as well as some of my own ideas about having a call cleared flag for this.
>
>
>
> Mladenoviè Zoran wrote:
>
>
>
> >Would this help to solve my problem?
>
> >
>
> >I have mid-range installation with 2 IVR's, 16 E-1, ss7. When there is short call, or sometimes, when call is abandoned, links are blocked because of that.
>
> >Extract from ss7 trace:
>
> >
>
> >08:33 23.657 <-- [12] IAM in cs_READY, i=0, p:010601000702600109010a020100040803901551910000f20a060313131861790801000b0603101416572413020361280603 10141657241d038090a33102005a390431d03fc03f08849383460140110100
>
> >08:33 23.657 <== [12] MT_OFFERED_IND in cs_OFFERED, size=172
>
> >08:33 23.657 <-- [12] REL in cs_OFFERED, i=0, p:0c1202839f00
>
> >08:33 23.657 <== [12] MT_DISCONNECT_IND in cs_DISCONNECTED, size=25
>
> >08:33 23.657 --> [12] REL in cs_DISCONNECTED, p:0c00
>
> >08:33 35.135 <-- [12] REL in cs_DISCONNECTED, i=0, p:0c1202859f00
>
> >08:33 35.136 WARNING: [12] Circuit::ProcessMsg() REL in
>
> >cs_DISCONNECTED, still waiting for application DropCall
>
> >
>
> >As seen above Bayonne is still sending REL message instead of RLC. SS7 guard timer expires and port is blocked.
>
> >
>
> >Zoran Mladenovic
>
> >
>
> >-----Original Message-----
>
> >From: [email protected]
>
> >[mailto:[email protected]
>
> ><mailto:[email protected]> ] On
>
> >Behalf Of David Sugar
>
> >Sent: Friday, December 30, 2005 7:04 PM
>
> >To: Julien Chavanton
>
> >Cc: [email protected]
>
> >Subject: Re: [Bayonne-devel] Bayonne Globalcall TASKFAIL and
>
> >TRUNK_CALL_FAILURE
>
> >
>
> >Hmm...one thing I think we should do is add a "cleared" flag to the Dialogic trunk structure. This would be used to indicate that the current call had been "cleared" (channel reset after a failure, for example), but that the driver (bayonne state) is not yet "idle". This could happen if we reset a channel and issue a hangup signal event to the script engine to handle call exiting scripts, for example.
>
> >
>
> >Hence, in the example you give, instead of issuing TRUNK_CALL_FAILURE in response to the TASKFAIL, I think we should instead raise the cleared flag, and post a TRUNK_STOP_DISCONNECT. The hangup state handler, when it is later called, would check the cleared flag, and skip hangup if the channel is already "cleared". The idle state would reset the cleared flag on entry. If a new call is presented in postEvent while the current call is still clearing, then it should send back a call reject. This I think is also related to the simultaneous CRN issue.
>
> >
>
> >What do you think of this idea?
>
> >
>
> >Julien Chavanton wrote:
>
> >
>
> >
>
> >
>
> >>I have made a few modification to globalcall drivers to handle
>
> >>TASKFAIL more efficiently
>
> >>
>
> >>I always reset the port when there is a TASKFAIL because anyway when
>
> >>there is a TASKFAIL the call is lost and most of the time the TASKFAIL
>
> >>is caused by short call
>
> >>
>
> >>Or abandon calls.
>
> >>
>
> >>This is producing positive results.
>
> >>
>
> >>The only difficulty was to keep bayonne state sync with Globalcall
>
> >>state because RESETLINEDEV is not the normal state transition.
>
> >>
>
> >>-------------------------------------------------------------
>
> >>
>
> >>I keep an eye on Bayonne 2 evolution; it would be interesting for me
>
> >>to help with the Globalcall Drivers in Bayonne 2.
>
> >>
>
> >>Something positive about Globalcall is that Intel is moving to HMP
>
> >>host media processing "Voip library optimized for Xeon CPU".
>
> >>
>
> >>And this may be the best performance Voip solution available due to
>
> >>the integration in the Xeon CPU internal instructions.
>
> >>
>
> >>If they succeed Globalcall should be almost compatible with HMP, and
>
> >>bayonne could be HMP enabled without to much work.
>
> >>
>
> >>However HMP is commercial I think it is 10$ a port and it may be too
>
> >>much for a software solution.
>
> >>
>
> >>Julien
>
> >>
>
> >>----------------------------------------------------------------------
>
> >>--
>
> >>
>
> >>*From:*
>
> >>bayonne-devel-bounces+j.chavanton=oneworldinteractive.com@gnu.org
>
> >>[mailto:bayonne-devel-bounces+j.chavanton=oneworldinteractive.com@gnu <mailto:bayonne-devel-bounces+j.chavanton=oneworldinteractive.com@gnu> .
>
> >>org]
>
> >>*On Behalf Of *Julien Chavanton
>
> >>*Sent:* December 19, 2005 10:09 AM
>
> >>*To:* [email protected]
>
> >>*Cc:* [email protected]
>
> >>*Subject:* [Bayonne-devel] Bayonne Globalcall TASKFAIL and
>
> >>TRUNK_CALL_FAILURE
>
> >>
>
> >>Hi David,
>
> >>
>
> >>I am looking to modify TRUNK_CALL_FAILURE in bayonne globalcall since
>
> >>this is currently handled as a disconnection.
>
> >>
>
> >>It was not that bad but most of the time this is not enough.
>
> >>
>
> >>And we loose port, only when there is a TASKFAIL that is really caused
>
> >>by the Dialogic drivers.
>
> >>
>
> >>The main source of TASKFAIL is abandon calls and short calls the
>
> >>Dialogic drivers are not capable of handling this automatically and
>
> >>this result in TASKFAIL
>
> >>
>
> >>The only problem I think is that the script may be left attached and
>
> >>the next call will fail to attach.
>
> >>
>
> >>Here is what I have in mind:
>
> >>
>
> >>globalcall/driver.cpp
>
> >>
>
> >>case GCEV_TASKFAIL
>
> >>
>
> >>event.id = TRUNK_CALL_FAILURE;
>
> >>
>
> >>trunk->postEvent(&event);
>
> >>
>
> >>gc_ResetLineDev(linedev, EV_ASYNC);
>
> >>
>
> >>break;
>
> >>
>
> >>globalcall/trunk.cpp
>
> >>
>
> >>case TRUNK_CALL_FAILURE:
>
> >>
>
> >>// We need to prepare Bayonne for recovery of next call
>
> >>
>
> >>Trunk::detach();
>
> >>
>
> >>if(join)
>
> >>
>
> >>Part();
>
> >>
>
> >>if(tgi.pid)
>
> >>
>
> >>::kill(tgi.pid, SIGHUP);
>
> >>
>
> >>if(thread)
>
> >>
>
> >>thread->stop();
>
> >>
>
> >>Trunk::flags.dsp = DSP_MODE_INACTIVE;
>
> >>
>
> >>More information about TASKFAIL if any interest:
>
> >>
>
> >>How to Handle GCEV_TASKFAIL Events (However I have made some test and
>
> >>I am not sure about this article complete accuracy)
>
> >>
>
> >>http://resource.intel.com/telecom/support/tnotes/tnbyos/2000/tn061.htm
>
> >><http://resource.intel.com/telecom/support/tnotes/tnbyos/2000/tn061.ht
>
> >>m>
>
> >>
>
> >>You can find information about abandon calls here:
>
> >>
>
> >>http://resource.intel.com/telecom/support/releases/winnt/SR511FP1/onld
>
> >><http://resource.intel.com/telecom/support/releases/winnt/SR511FP1/onl
>
> >>d>
>
> >>oc/htmlfiles/gcprgdw/gc-sta15.htm
>
> >>
>
> >>----------------------------------------------------------------------
>
> >>-
>
> >>-
>
> >>
>
> >>_______________________________________________
>
> >>Bayonne-devel mailing list
>
> >>[email protected]
>
> >>http://lists.gnu.org/mailman/listinfo/bayonne-devel
>
> >><http://lists.gnu.org/mailman/listinfo/bayonne-devel>
>
> >>
>
> >>
>
> >>
>
> >>
>
> >
>
> >
>
> >SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!
>
> >
>
> >To elektronsko sporoèilo in pripete datoteke lahko vsebujejo informacije zaupne narave in/ali informacije, ki so varovane s pravom in so namenjene samo posamezniku ali družbi, na katero so naslovljene. Kakršnakoli neavtorizirana uporaba informacij, prejetih v tem elektronskem sporoèilu in pripetih datotekah, je prepovedana.
>
> >Ăe elektronsko sporoèilo in pripete datoteke niso bile namenjene prejemniku sporoèila, ali èe je bilo zaradi napake v naslovniku ali pri prenosu sporoèilo poslano drugam, prosimo, da o tem obvestite pošiljatelja, prejeto elektronsko sporoèilo in pripete datoteke pa brez kakršnekoli predhodne uporabe zbrišite. Mobitel, d. d., in z njim povezane ali od njega odvisne družbe niso odgovorne za elektronsko sporoèilo in pripete datoteke, èe je to spremenjeno, ponarejeno ali preoblikovano s strani tretje osebe. Elektronsko sporoèilo in pripete datoteke so bile pregledane z antivirusno programsko opremo.
>
> >
>
> >
>
> >This e-mail and its attachments may contain confidential and/or privileged information and are intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized use of information received in this email and its attachments is forbidden. If you are not the intended recipient, or an addressing or transmission error has misdirected this e-mail, please notify the sender by replying to this e-mail and delete it without any prior use. Neither Mobitel, d.d. nor any of its subsidiaries or affiliates shall be liable for the e-mail and its attachments if altered, changed or falsified by third parties. This e-mail and its attachments have been scanned by Anti-Virus Software.
>
> >_______________________________________________
>
> >Bayonne-devel mailing list
>
> >[email protected]
>
> >http://lists.gnu.org/mailman/listinfo/bayonne-devel
>
> >
>
> >
>
>
>
>
>
> SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!
>
>
>
> To elektronsko sporoèilo in pripete datoteke lahko vsebujejo informacije zaupne narave in/ali informacije, ki so varovane s pravom in so namenjene samo posamezniku ali družbi, na katero so naslovljene. Kakršnakoli neavtorizirana uporaba informacij, prejetih v tem elektronskem sporoèilu in pripetih datotekah, je prepovedana.
>
> Ăe elektronsko sporoèilo in pripete datoteke niso bile namenjene prejemniku sporoèila, ali èe je bilo zaradi napake v naslovniku ali pri prenosu sporoèilo poslano drugam, prosimo, da o tem obvestite pošiljatelja, prejeto elektronsko sporoèilo in pripete datoteke pa brez kakršnekoli predhodne uporabe zbrišite. Mobitel, d. d., in z njim povezane ali od njega odvisne družbe niso odgovorne za elektronsko sporoèilo in pripete datoteke, èe je to spremenjeno, ponarejeno ali preoblikovano s strani tretje osebe. Elektronsko sporoèilo in pripete datoteke so bile pregledane z antivirusno programsko opremo.
>
>
>
>
>
> This e-mail and its attachments may contain confidential and/or privileged information and are intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized use of information received in this email and its attachments is forbidden. If you are not the intended recipient, or an addressing or transmission error has misdirected this e-mail, please notify the sender by replying to this e-mail and delete it without any prior use. Neither Mobitel, d.d. nor any of its subsidiaries or affiliates shall be liable for the e-mail and its attachments if altered, changed or falsified by third parties. This e-mail and its attachments have been scanned by Anti-Virus Software.
>
>
>
>
>
> _______________________________________________
>
> Bayonne-devel mailing list
>
> [email protected]
>
> http://lists.gnu.org/mailman/listinfo/bayonne-devel
>
>
>
>
>
>SAMO NASLOVNIKU! / ONLY FOR THE INTENDED RECIPIENT!
>
>
>
>To elektronsko sporoèilo in pripete datoteke lahko vsebujejo informacije zaupne narave in/ali informacije, ki so varovane s pravom in so namenjene samo posamezniku ali družbi, na katero so naslovljene. Kakršnakoli neavtorizirana uporaba informacij, prejetih v tem elektronskem sporoèilu in pripetih datotekah, je prepovedana.
>
>Ăe elektronsko sporoèilo in pripete datoteke niso bile namenjene prejemniku sporoèila, ali èe je bilo zaradi napake v naslovniku ali pri prenosu sporoèilo poslano drugam, prosimo, da o tem obvestite pošiljatelja, prejeto elektronsko sporoèilo in pripete datoteke pa brez kakršnekoli predhodne uporabe zbrišite. Mobitel, d. d., in z njim povezane ali od njega odvisne družbe niso odgovorne za elektronsko sporoèilo in pripete datoteke, èe je to spremenjeno, ponarejeno ali preoblikovano s strani tretje osebe. Elektronsko sporoèilo in pripete datoteke so bile pregledane z antivirusno programsko opremo.
>
>
>
>
>
>This e-mail and its attachments may contain confidential and/or privileged information and are intended solely for the use of the individual or entity to whom they are addressed. Any unauthorized use of information received in this email and its attachments is forbidden. If you are not the intended recipient, or an addressing or transmission error has misdirected this e-mail, please notify the sender by replying to this e-mail and delete it without any prior use. Neither Mobitel, d.d. nor any of its subsidiaries or affiliates shall be liable for the e-mail and its attachments if altered, changed or falsified by third parties. This e-mail and its attachments have been scanned by Anti-Virus Software.
>
>_______________________________________________
>Bayonne-devel mailing list
>[email protected]
>http://lists.gnu.org/mailman/listinfo/bayonne-devel
>
>
_______________________________________________
Bayonne-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bayonne-devel