Dialogic: dx_wtring not waiting on D/41D

An application is having trouble disconnecting from the PBX when it has left a call on hold, even though it does dx_sethook(m_chdev, DX_ONHOOK, EV_SYNC). We're working on this with the PBX people, but odder than that, is that when the application returns to the start, and does

dx_wtring(chdev, 1, DX_OFFHOOK, 3)

while I would expect it to timeout (returning -1, and setting ATDV_LASTERR(chdev) = EDX_TIMEOU) because the PBX hasn't released the line so no new calls can come in, it succeeds. I am sure there is no ring voltage on the line, how could dx_wtring be succeeding?

Also, are there any other places to ask this question? The Intel support forum at

formatting link
empty.

thanks

Reply to
p_almoni
Loading thread data ...

A few questions:

1) are you sure that dx_sethook is succeding? 2) You are in sync mode. Is this a multithread application? 3) is your dx_wtring succeding or is it failing immediately due to you being in the wrong state?

------------------------------------- p snipped-for-privacy@hotmail.com wrote:

##-----------------------------------------------##

Article posted with Cabling-Design.com Newsgroup Archive

formatting link
no-spam read and post WWW interface to your favorite newsgroup -

comp.dcom.telecom.tech - 5095 messages and counting!

##-----------------------------------------------##

Reply to
wooliewillie

I check to see if it returned -1, and it didn't. Also the sethook works when the PBX does not have calls on hold (and I know from my log file that I did get to dx_sethook the times it didn't disconnect, and that it didn't return -1). I have someone at the site looking into just what happens if a real phone hangs up while it has calls on hold.

Yes, but I know no other threads are using this channel. This application has worked for several years without any interference between the threads, or calls not being hung up.

The only change now is that in the past I was transferring incoming calls to local extensions of the PBX and now I'm transferring to an external number. What this changes is that this PBX, in spite of what the manual says, will not transfer to an external line without first putting the call on hold (weird, but true). When the extneral phone is answered, it works. But if it is not answered, dx_wtring doesn't wait, and the application starts again, instead of waiting for the next incoming call. The previous incoming call is still connected, as well.

I also check if the return value of dx_wtring is -1 (if it is, I log the error code, but that isn't happening here).

Reply to
p_almoni

I am not sure but you are wait>> A few questions:

##-----------------------------------------------##

Article posted with Cabling-Design.com Newsgroup Archive

formatting link
no-spam read and post WWW interface to your favorite newsgroup -

comp.dcom.telecom.tech - 5130 messages and counting!

##-----------------------------------------------##

Reply to
wooliewillie

Yes, I flash to get back to the original call, then hang up with

dx_sethook(m_chdev, DX_ONHOOK, EV_SYNC)

check that it didn't fail (by returning -1), and only then dx_wtring to wait for the next call.

Hmm. What if the PBX is dialing the phone in order to say "don't hang up, someone is on hold". That would explain why dx_wtring returns success. If the PBX simply is still connected, it would be just supplying line voltage, and possibly playing some error tone, but that shouldn't make dx_wtring succeed. Even if the dialogic is off-hook, that still shouldn't make dx_wtring succeed (although it should ensure that dx_wtring never succeeds, the PBX isn't going to send ring voltage to a line that is offhook)

Reply to
p_almoni

Cabling-Design.com Forums website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.