bayonne-devel
[Top][All Lists]
Advanced

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

[Bayonne-devel] News on Globalcall outbound call problem


From: Julien Chavanton
Subject: [Bayonne-devel] News on Globalcall outbound call problem
Date: Wed, 1 Dec 2004 20:43:57 -0500

I may have found the source of the outbound call problem in Globalcall

Of course at this point I am still extrapolating but I have found that Dialogic recommend using cc_restart before cc_makecall

If cc_waitcall was called on the device. (This is a bit in contradiction with my last post L)

Now I have found a post from someone describing the exact behavior I have found with Globalcall GC_Makecall

At one point a call fail with no reason .

I hope to quickly find the time to test this.

Julien

 

The post I am referring to

I found the issue. In one of our new revisions, cc_waitcall is used on each channel to unblock it for potential overflow as inbound. if cc_waitcall has been called, and the trunk is used for outbound with cc_makecall 24 times consecutively (cc_waitcall after each ccev_releasecall), cc_makecall will fail the 24th attempt. I can reproduce this behaviour everytime.

If i would have carefully read the documentation, I would have seen "The application needs to issue cc_WaitCall( ) only once per line device" and this whole thing would have been prevented. Haste makes waste I guess they say. (dulp!)

-nick

--------------------------------------------------------------------------------------------------------------------------------------------

Dialogic recommendation:

--------------------------------------------------------------------------------------------------

 

int makecall(short devhdl)  
  CRN crn;                      /* call reference number */  
  char *dialnum = "12019933000";/* outgoing phone number */  
     .  
     .  
     .  
  /*  
   *This cc_Restart() allows the B channel line device to  
   *escape from cc_WaitCall(), or other multitasking  
   *functions.  
   */  
  if ( cc_Restart(devhdl, EV_SYNC) < 0 )  
       procdevfail(devhdl);  
  /*  
   * Now it's safe to make a call.  To avoid contention,  
   * a mechanism to prevent other multitasking functions  
   * from being invoked again, such as cc_WaitCall(),  
   * is recommended here.  
   */  
  if ( cc_MakeCall(devhdl, &crn, dialnum, NULL, 20, EV_SYNC)  
            < 0 )  
     procdevfail(devhdl);  
     .  
     .  
     .  
     .  

 

 

I have found

 

 

I found the issue. In one of our new revisions, cc_waitcall is used on each channel to unblock it for potential overflow as inbound. if cc_waitcall has been called, and the trunk is used for outbound with cc_makecall 24 times consecutively (cc_waitcall after each ccev_releasecall), cc_makecall will fail the 24th attempt. I can reproduce this behaviour everytime.

If i would have carefully read the documentation, I would have seen "The application needs to issue cc_WaitCall( ) only once per line device" and this whole thing would have been prevented. Haste makes waste I guess they say. (dulp!)

-nick

 


reply via email to

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