bayonne-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and TRUNK_C


From: David Sugar
Subject: Re: [SPAM] - RE: [Bayonne-devel] Bayonne Globalcall TASKFAIL and TRUNK_CALL_FAILURE - Bayesian Filter detected spam
Date: Thu, 19 Jan 2006 13:35:24 -0500
User-agent: Mozilla Thunderbird 1.0.7 (X11/20051011)

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;
>
>}
>
>. . .
>
> 
>
> 
>
> 
>
> 
>
> 
>
> 
>
> 
>
>address@hidden 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:address@hidden 
>Sent: January 17, 2006 5:20 AM
>To: Julien Chavanton; David Sugar
>Cc: address@hidden
>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:address@hidden 
>
>Sent: Saturday, January 14, 2006 2:16 AM
>
>To: Mladenovič Zoran; David Sugar
>
>Cc: address@hidden
>
>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: address@hidden on behalf of Mladenovič Zoran 
>
>      Sent: Wed 1/11/2006 04:22 PM 
>
>      To: David Sugar 
>
>      Cc: address@hidden 
>
>      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: address@hidden [mailto:address@hidden On Behalf Of David Sugar
>
>      Sent: Wednesday, January 11, 2006 7:24 PM
>
>      To: Mladenovič Zoran
>
>      Cc: address@hidden
>
>      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: address@hidden
>
>      >[mailto:address@hidden
>
>      ><mailto:address@hidden> ] On
>
>      >Behalf Of David Sugar
>
>      >Sent: Friday, December 30, 2005 7:04 PM
>
>      >To: Julien Chavanton
>
>      >Cc: address@hidden
>
>      >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:*
>
>      >>address@hidden
>
>      >>[mailto:address@hidden <mailto:address@hidden> .
>
>      >>org]
>
>      >>*On Behalf Of *Julien Chavanton
>
>      >>*Sent:* December 19, 2005 10:09 AM
>
>      >>*To:* address@hidden
>
>      >>*Cc:* address@hidden
>
>      >>*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
>
>      >>address@hidden
>
>      >>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
>
>      >address@hidden
>
>      >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
>
>      address@hidden
>
>      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
>address@hidden
>http://lists.gnu.org/mailman/listinfo/bayonne-devel
>  
>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]