Notes |
(0000087)
gernot
2004-01-25 22:04
|
Well, I'm not sure how to fix this... I don't think there's something like a "Kombigerät" in the ISDN services. If you're interested in details, please have a look at the CAPI specification part I (available from www.capi.org), parameter "CIP value".
The only way I see to workaround this is to use CIP 4, which means "3.1 kHz audio". But this would mean that other PBXs which are configured right won't be able to recognize that this is a fax call. This would mean to ignore an important ISDN feature in my eyes...
Therefore, my current idea was to let CapiSuite use fax services how it is told by the ISDN specification - and the people who use wrongly configured PBXs should fix them. Otherwise these people won't fix their setup forever if all others would workaround it. (It's somehow comparable to the HTML desaster - instead of denying wrong syntax, all browsers try to be clever and guess what the HTML writer could have meant and that's the reason why we have so much damaged web sites out there...)
However, there were quite many users of CapiSuite who already ran in this problem - but all of them stopped complaining after I explained the situation to them. So I'm not sure about what to do here...
Any clever ideas?
BTW: I'm not too sure what a "Kombigerät" signals - perhaps you could send me a testfax? |
| |
(0000089)
mreschka
2004-01-25 23:41
|
I think you are right with that.
Although I experimented a bit, I didn't have any clever idea... When there is some time left I will try to work on it, again.
I just had a look at the "Kombigerät"-CIP and - as you suggested - it is 0x04: 3.1 kHz Audio. I will try to convince everyone who uses a fax behind a PBX to accept fax calls with 0x11, too.
Maybe you should consider to leave this bug open, so people stop asking for it. |
| |
(0000106)
gernot
2004-03-19 14:50
|
As I hear this problem again and again, I'm thinking about implementing some kind of fallback mechanism in CapiSuite so that users can send a fax and manually override the CIP value for this fax only.
This means there should be a parameter for capisuitefax stating that this fax should be sent with CIP 0x4... |
| |
(0000118)
georg
2004-03-31 17:31
|
I currently have the same Problem. I try to use capisuite in an business environment, and it is sometimes not polite to call our customers and tell them that their faxes are not configured right.
My idea is adding the fix in idle.py. In function
def sendfax(capi,job,outgoing_nr,dialstring,user,config):
[ ... ]
(call,result)=capisuite.call_faxG3(capi,controller,outgoing_nr,dialstring,timeout,stationID,headline)
if (result != 0):
return(result,0)
change it into something like
(call,result)=capisuite.call_faxG3(capi,controller,outgoing_nr,dialstring,timeout,stationID,headline)
if (result = 0):
capisuite.fax_send(call,job)
return(capisuite.disconnect(call))
elif (result = 34d8)
capisuite.analog_fax_send(call,job)
return(capisuite.disconnect(call))
else
return(result,0)
and the showstopper is gone. My Problem is that I don't know where to find a python API referece for capisuite. Otherwise I already did that myself (if the function analog_fax_send(call,job) is availiable).
Thanks for fixing,
Georg |
| |
(0000119)
georg
2004-03-31 18:27
|
I programmed it as far as I could get using Python only (the pseudo-code I recently added was far from complete...). Now the only exception I get is:
Pythonscript /usr/lib/capisuite/idle.py,idle,0x81df898: Python traceback: capisuite.BackendError: CapiError: CapiExternalError: Connection not in fax mode occured in FaxSend::FaxSend()
If you simply didn't throw that exception, everything would be O.K. I will have a short look in the C-Source right now, maybe I can fix it as well...
'til then,
Georg |
| |
(0000120)
georg
2004-03-31 18:28
|
p.s.: the new idle.py is attached |
| |
(0000121)
georg
2004-03-31 18:53
|
put faxsend.cpp in ./src/modules and recompile (it's taken from version 0.44)
Just commented that error out... now everything seems to work (though I couldn't test it thoroughly, the fax-app just reported no error on connecting). I will test it tomorrow when there is someone at the other side.
c ya,
georg |
| |
(0000124)
gernot
2004-04-03 21:37
|
Georg: thx for your suggested changes, but what you do here can cause problems.
There are three ISDN service indicators which are important with our usage scenario:
- fax: this should be used when sending a fax
- voice: this should be used when doing a voice call
- 3.1 kHz audio: this is provided for the backward compatibility with the old analog phone system and is set when an analog call comes in
To set "fax" when sending a fax document is what we should do and what we currently do. But as discussed here this can cause problems with misconfigured PBXs.
To set "3.1 kHz audio" is not really wrong but doesn't make use of the full ISDN features. This may be used as a workaround for the problems described here.
To set "voice" how you do it can cause problems because the ISDN net is e.g. allowed to use voice specific audio compression on these kind of connections which could cause problems with a fax connection.
What I want to implement is an additional parameter to call_fax() which will set "audio 3.1 khz" as service. |
| |
(0000125)
georg
2004-04-05 10:37
|
Gernot, you are right. I didn't foresee the implications and am not very firm in ISDN / CAPI programming. But I decided to implement the correct feature:
I added an outgoing call with CIP 4 in Connection::service_t with the label AUDIO3KHZ. I also edited the python Interface and added capisuite_call_audio3khz as a wrapper-function for this call type. I hope that it is now a correct implementation.
While I was doing it, I noticed capisuite_switch_to_fax as a fix to my previous python-implementation, although you say it may not work everywhere. I will add the new corrected idle.py.switch_to_fax soon.
I also scripted a new idle.py.audio3khz that uses my new implementation. Hopefully mreschka calls me soon, so I can test it. |
| |
(0000126)
georg
2004-04-06 18:41
|
Thanks to mreschka I could test a bit with faulty fax-stations. Forget the capisuite-0.4.4-3khz-audio.diff, it doesn't do the job. But I found out, that with an AVM B1 that I use for sending faxes, I can switch the channel after I established an audio call. So my idle.py.switch_to_fax is a working solution, at least for some cards.
Gernot, thank you for your application, now it is the thing I searched for. If you find someone for whom the switching does not work, maybe I will spend some more time to improve the audio3khz-solution.
Resolution: (almost) fixed
'til then,
Georg |
| |
(0000236)
e_kerger
2005-03-15 13:14
|
We had the problem with many misconfigured ISDN PBX, and I changed the sending CIP to 4 (3.1 kHz audio). This is the setting called "Kombigeraet".
Since compiling the 0.45 sources results in not running binaries (no log entry, no reaction to calls...), I patched the binary (taken from rpm) directly. But this is a hack, no solution.
I think the CIP should be configurable in capisuite.conf. This is a simple but save working solution. |
| |