diff --git a/CHANGES b/CHANGES index eb4bc3b8d6b38c998a064302f13ee89d0e1e114c..93b0f140dafa275e6dcff491915647713af43f92 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +SFLphone (0.4) + * Reorganisation of SFLphone architecture + SFLphone (0.3.1) / 2005-04-21 * Handle error messages on screen * Handle refused call diff --git a/src/audio/audiodriversalsa.cpp b/src/audio/audiodriversalsa.cpp index fffe5cf9aabb8c6f3c1420edc0f9363f6e29ac2d..9547420a143525eff3064392728423dced57ba4e 100644 --- a/src/audio/audiodriversalsa.cpp +++ b/src/audio/audiodriversalsa.cpp @@ -82,7 +82,7 @@ AudioDriversALSA::initDevice (DeviceMode mode) { } if (err < 0) { - printf ("ERROR: ALSA/snd_pcm_open: Cannot open audio device (%s)\n", + _debug ("ERROR: ALSA/snd_pcm_open: Cannot open audio device (%s)\n", snd_strerror (err)); error->errorName(OPEN_FAILED_DEVICE, NULL); return -1; @@ -95,7 +95,7 @@ AudioDriversALSA::initDevice (DeviceMode mode) { err = snd_pcm_hw_params_malloc (&hw_params); if (err < 0) { - printf ("Cannot allocate hardware parameter structure (%s)\n", + _debug ("Cannot allocate hardware parameter structure (%s)\n", snd_strerror (err)); error->errorName(PARAMETER_STRUCT_ERROR_ALSA, (char*)snd_strerror(err)); return -1; @@ -103,7 +103,7 @@ AudioDriversALSA::initDevice (DeviceMode mode) { // Init hwparams with full configuration space if ((err = snd_pcm_hw_params_any (audio_hdl, hw_params)) < 0) { - printf ("Cannot initialize hardware parameter structure (%s)\n", + _debug ("Cannot initialize hardware parameter structure (%s)\n", snd_strerror (err)); error->errorName(PARAMETER_STRUCT_ERROR_ALSA, (char*)snd_strerror(err)); return -1; @@ -112,7 +112,7 @@ AudioDriversALSA::initDevice (DeviceMode mode) { err = snd_pcm_hw_params_set_access (audio_hdl, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED); if (err < 0) { - printf ("Cannot set access type (%s)\n", snd_strerror (err)); + _debug ("Cannot set access type (%s)\n", snd_strerror (err)); error->errorName(ACCESS_TYPE_ERROR_ALSA, (char*)snd_strerror(err)); return -1; } @@ -121,7 +121,7 @@ AudioDriversALSA::initDevice (DeviceMode mode) { err = snd_pcm_hw_params_set_format (audio_hdl, hw_params, SND_PCM_FORMAT_S16_LE); if (err < 0) { - printf ("Cannot set sample format (%s)\n", snd_strerror (err)); + _debug ("Cannot set sample format (%s)\n", snd_strerror (err)); error->errorName(SAMPLE_FORMAT_ERROR_ALSA, (char*)snd_strerror(err)); return -1; } @@ -134,18 +134,18 @@ AudioDriversALSA::initDevice (DeviceMode mode) { err = snd_pcm_hw_params_set_rate_near (audio_hdl, hw_params, &exact_rate, 0); if (err < 0) { - printf ("Cannot set sample rate (%s)\n", snd_strerror (err)); + _debug ("Cannot set sample rate (%s)\n", snd_strerror (err)); error->errorName(SAMPLE_RATE_ERROR_ALSA, (char*)snd_strerror(err)); return -1; } if (exact_rate != rate) { - fprintf(stderr, "The rate %d Hz is not supported by your hardware.\n ==> Using %d Hz instead.\n", rate, exact_rate); + _debug("The rate %d Hz is not supported by your hardware.\n ==> Using %d Hz instead.\n", rate, exact_rate); } // Set number of channels - Mono(1) or Stereo(2) err = snd_pcm_hw_params_set_channels (audio_hdl, hw_params, MONO); if (err < 0) { - printf ("Cannot set channel count (%s)\n", snd_strerror (err)); + _debug ("Cannot set channel count (%s)\n", snd_strerror (err)); error->errorName(CHANNEL_ERROR_ALSA, (char*)snd_strerror(err)); return -1; } @@ -153,7 +153,7 @@ AudioDriversALSA::initDevice (DeviceMode mode) { // Apply previously setup parameters err = snd_pcm_hw_params (audio_hdl, hw_params); if (err < 0) { - printf ("Cannot set parameters (%s)\n", snd_strerror (err)); + _debug ("Cannot set parameters (%s)\n", snd_strerror (err)); error->errorName(PARAM_SETUP_ALSA, (char*)snd_strerror(err)); return -1; } @@ -222,19 +222,18 @@ int AudioDriversALSA::resetDevice (void) { int err; - printf("Resetting...\n"); + _debug("Resetting...\n"); if ((err = snd_pcm_drop(audio_hdl)) < 0) { - printf ("ALSA: drop() error: %s\n", snd_strerror (err)); + _debug ("ALSA: drop() error: %s\n", snd_strerror (err)); error->errorName(DROP_ERROR_ALSA, (char*)snd_strerror(err)); return -1; } if ((err = snd_pcm_prepare(audio_hdl)) < 0) { - printf ("ALSA: prepare() error: %s\n", snd_strerror (err)); + _debug ("ALSA: prepare() error: %s\n", snd_strerror (err)); error->errorName(PREPARE_ERROR_ALSA, (char*)snd_strerror(err)); return -1; } - return 0; } diff --git a/src/audio/audiodriversoss.cpp b/src/audio/audiodriversoss.cpp index c00b85cf6a2f0190028c40855509802f952d78d6..6f4f258e466f198dfdbf0f313b4dea5453df470f 100644 --- a/src/audio/audiodriversoss.cpp +++ b/src/audio/audiodriversoss.cpp @@ -50,12 +50,11 @@ AudioDriversOSS::~AudioDriversOSS (void) { int AudioDriversOSS::resetDevice (void) { - printf ("Resetting..."); + _debug ("Resetting...\n"); if (ioctl(audio_fd, SNDCTL_DSP_RESET) < 0) { perror("ioctl"); return -1; } - printf ("done\n"); return 0; } @@ -93,7 +92,7 @@ AudioDriversOSS::initDevice (DeviceMode mode) { // Fragments : No limit (0x7FFF), int frag = ( ( 0x7FFF << 16 ) | 7 ); if (ioctl(audio_fd, SNDCTL_DSP_SETFRAGMENT, &frag)) { - printf ("ERROR: SETFRAG %s\n", strerror(errno)); + _debug ("ERROR: SETFRAG %s\n", strerror(errno)); error->errorName(FRAGMENT_ERROR_OSS, strerror(errno)); return -1; } @@ -103,37 +102,37 @@ AudioDriversOSS::initDevice (DeviceMode mode) { format = AFMT_S16_LE; if (ioctl(audio_fd, SNDCTL_DSP_SETFMT, &format) == -1) { - printf("ERROR: SETFMT %s\n", strerror(errno)); + _debug("ERROR: SETFMT %s\n", strerror(errno)); error->errorName(SAMPLE_FORMAT_ERROR_OSS, strerror(errno)); return -1; } if (format != AFMT_S16_LE) { - printf ("ERROR: Format not supported\n"); + _debug ("ERROR: Format not supported\n"); return -1; } // Setup number of channels int channels = MONO; if (ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &channels) == -1) { - printf ("ERROR: DSP_STEREO %s\n", strerror(errno)); + _debug ("ERROR: DSP_STEREO %s\n", strerror(errno)); error->errorName(CHANNEL_ERROR_OSS, strerror(errno)); return -1; } if (channels != MONO) { - printf ("ERROR: Unsupported Number of Channels\n"); + _debug ("ERROR: Unsupported Number of Channels\n"); return -1; } // Setup sampling rate 8KHz int rate = SAMPLING_RATE; if (ioctl(audio_fd, SNDCTL_DSP_SPEED, &rate ) == -1 ) { - printf ("ERROR: DSP_SPEED %s\n", strerror(errno)); + _debug ("ERROR: DSP_SPEED %s\n", strerror(errno)); error->errorName(SAMPLE_RATE_ERROR_OSS, strerror(errno)); return -1; } if (rate != SAMPLING_RATE) { - printf ("WARNING: driver rounded %d Hz request to %d Hz, off by %f%%\n" + _debug ("WARNING: driver rounded %d Hz request to %d Hz, off by %f%%\n" , 8000, rate, 100*((rate-8000)/8000.0)); } @@ -141,13 +140,13 @@ AudioDriversOSS::initDevice (DeviceMode mode) { audio_buf_info info; if (mode == WriteOnly) { if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info) == -1) { - printf ("ERROR: GETISPACE %s\n", strerror(errno)); + _debug ("ERROR: GETISPACE %s\n", strerror(errno)); error->errorName(GETISPACE_ERROR_OSS, strerror(errno)); return -1; } } else { if (ioctl(audio_fd, SNDCTL_DSP_GETISPACE, &info ) == -1) { - printf ("ERROR: GETOSPACE %s\n", strerror(errno)); + _debug ("ERROR: GETOSPACE %s\n", strerror(errno)); error->errorName(GETOSPACE_ERROR_OSS, strerror(errno)); return -1; } @@ -169,13 +168,13 @@ bool AudioDriversOSS::openDevice (int exist_fd) { audio_fd = exist_fd; if (audio_fd == -1) { - printf ("ERROR: Open Failed\n"); + _debug ("ERROR: Open Failed\n"); return false; } audio_buf_info info; if (ioctl(audio_fd, SNDCTL_DSP_GETISPACE, &info) == -1) { - printf ("ERROR: GETISPACE %s\n", strerror(errno)); + _debug ("ERROR: GETISPACE %s\n", strerror(errno)); return false; } // audio_buf.resize (info.fragsize * sizeof(short)); @@ -196,11 +195,11 @@ AudioDriversOSS::readBuffer (void *ptr, int bytes) { rc = read (audio_fd, ptr, count); if (rc < 0) { - printf ("rc < 0 read(): %s\n", strerror(errno)); + _debug ("rc < 0 read(): %s\n", strerror(errno)); } else if (rc != count) { - printf ("WARNING: asked microphone for %d got %d\n", count, rc); + _debug ("WARNING: asked microphone for %d got %d\n", count, rc); } return rc; @@ -221,11 +220,11 @@ AudioDriversOSS::readBuffer (int bytes) { rc = read (audio_fd, buf, count); if (rc < 0) { - printf ("rc < 0 read(): %s\n", strerror(errno)); + _debug ("rc < 0 read(): %s\n", strerror(errno)); } else if (rc != count) { - printf ("WARNING: asked microphone for %d got %d\n", count, rc); + _debug ("WARNING: asked microphone for %d got %d\n", count, rc); } return rc; @@ -251,7 +250,7 @@ AudioDriversOSS::writeBuffer (void *ptr, int len) { for (;;) { int a; if ((a = write(audio_fd, ptr, len)) < 0) { - printf ("write(): %s\n", strerror(errno)); + _debug ("write(): %s\n", strerror(errno)); break; } if (a > 0) { @@ -283,7 +282,7 @@ AudioDriversOSS::writeBuffer (void) { for (;;) { int a; if ((a = write(audio_fd, buf, count)) < 0) { - printf ("write(): %s\n", strerror(errno)); + _debug ("write(): %s\n", strerror(errno)); break; } if (a > 0) { @@ -317,7 +316,7 @@ AudioDriversOSS::readableBytes(void) { return 0; } if (ioctl (audio_fd, SNDCTL_DSP_GETISPACE, &info) == -1) { - printf ("ERROR: readableBytes %s\n", strerror(errno)); + _debug ("ERROR: readableBytes %s\n", strerror(errno)); return 0; } diff --git a/src/audio/audiortp.cpp b/src/audio/audiortp.cpp index 896535a90fa8ecfdd6a3a88aaebdc9c9c7508f27..cd9e7a741604112d7a7f2f4b398b62df5746f70d 100644 --- a/src/audio/audiortp.cpp +++ b/src/audio/audiortp.cpp @@ -88,15 +88,16 @@ AudioRtp::createNewSession (SipCall *ca) { void AudioRtp::closeRtpSession (SipCall *ca) { // This will make RTP threads finish. - ca->enable_audio = -1; + if (ca->enable_audio > 0) { + ca->enable_audio = -1; - if (_RTXThread != NULL) { - delete _RTXThread; - _RTXThread = NULL; + if (_RTXThread != NULL) { + delete _RTXThread; + _RTXThread = NULL; + } + // Flush audio read buffer + _manager->audiodriver->resetDevice(); } - - // Flush audio read buffer - _manager->audiodriver->resetDevice(); } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/audio/tonegenerator.cpp b/src/audio/tonegenerator.cpp index 7cb987d4d7966f1dbbe42de9271eb0c2e8aea079..d5d3a7dd5ca512681e2d141a550ce2e73d4622f8 100644 --- a/src/audio/tonegenerator.cpp +++ b/src/audio/tonegenerator.cpp @@ -208,19 +208,19 @@ ToneGenerator::buildTone (int idCountry, int idTones, int samplingRate, */ int ToneGenerator::idZoneName (const string& name) { - if (name.compare("North America")) { + if (name.compare("North America") == 0) { return ID_NORTH_AMERICA; - } else if (name.compare("France")) { + } else if (name.compare("France") == 0) { return ID_FRANCE; - } else if (name.compare("Australia")) { + } else if (name.compare("Australia") == 0) { return ID_AUSTRALIA; - } else if (name.compare("United Kingdom")) { + } else if (name.compare("United Kingdom") == 0) { return ID_UNITED_KINGDOM; - } else if (name.compare("Spain")) { + } else if (name.compare("Spain") == 0) { return ID_SPAIN; - } else if (name.compare("Italy")) { + } else if (name.compare("Italy") == 0) { return ID_ITALY; - } else if (name.compare("Japan")) { + } else if (name.compare("Japan") == 0) { return ID_JAPAN; } else { _debug("Zone no supported\n"); diff --git a/src/call.cpp b/src/call.cpp index b7da704f1839a61ce7bfca9cd7051ac6c4c8cb00..68c057be15f524df5dafc30ff7cf8d2752d614a4 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -18,7 +18,7 @@ */ #include <iostream> -#include "audio/audiocodec.h" +//#include "audio/audiocodec.h" #include "call.h" #include "manager.h" #include "sipvoiplink.h" @@ -104,12 +104,13 @@ Call::getVoIPLink (void) return _voIPLink; } +/* void Call::setAudioCodec (void) { _audiocodec = _voIPLink->getAudioCodec(getId()); } - +*/ string Call::getStatus (void) { @@ -185,7 +186,7 @@ Call::setType (enum CallType type) bool Call::isBusy (void) { - if (isAnswered() or isOffHold() or isOnMute()) { + if (isAnswered() or isOffHold() or isOnMute() or isOffMute()) { return true; } else { return false; @@ -209,6 +210,12 @@ Call::isOnMute (void) return (_state == MuteOn) ? true : false; } +bool +Call::isOffMute (void) +{ + return (_state == MuteOff) ? true : false; +} + bool Call::isTransfered (void) { @@ -274,35 +281,35 @@ Call::hangup (void) { int i = _voIPLink->hangup(_id); _voIPLink->deleteSipCall(_id); - return 1; + return i; } int Call::answer (void) { int i = _voIPLink->answer(_id); - return 1; + return i; } int Call::onHold (void) { int i = _voIPLink->onhold(_id); - return 1; + return i; } int Call::offHold (void) { int i = _voIPLink->offhold(_id); - return 1; + return i; } int Call::transfer (const string& to) { int i = _voIPLink->transfer(_id, to); - return 1; + return i; } int @@ -322,7 +329,7 @@ Call::refuse (void) { int i = _voIPLink->refuse(_id); _voIPLink->deleteSipCall(_id); - return 1; + return i; } int @@ -330,7 +337,7 @@ Call::cancel (void) { int i = _voIPLink->cancel(_id); _voIPLink->deleteSipCall(_id); - return 1; + return i; } /////////////////////////////////////////////////////////////////////////////// @@ -343,5 +350,5 @@ Call::initConstructor(void) _state = NotExist; _type = Null; _voIPLinkId = 1; - _audiocodec = NULL; +// _audiocodec = NULL; } diff --git a/src/call.h b/src/call.h index b0c6259870793c7544743f0747e6069d232e2fdd..270c5e1e3bfb6381765396370e8184c06bebf497 100644 --- a/src/call.h +++ b/src/call.h @@ -52,7 +52,7 @@ enum CallType { #include "manager.h" -class AudioCodec; +//class AudioCodec; class Call { public: @@ -71,7 +71,7 @@ public: void setVoIPLinkId (short voIPLinkId); void setVoIPLink (VoIPLink* voIPLink); VoIPLink* getVoIPLink(void); - void setAudioCodec(void); +// void setAudioCodec(void); string getStatus (void); void setStatus (const string& status); @@ -93,6 +93,7 @@ public: bool isOnHold (void); bool isOffHold (void); bool isOnMute (void); + bool isOffMute (void); bool isTransfered (void); bool isHungup (void); bool isRinging (void); @@ -120,7 +121,7 @@ private: Manager* _manager; VoIPLink* _voIPLink; - AudioCodec* _audiocodec; +// AudioCodec* _audiocodec; short _id; short _voIPLinkId; diff --git a/src/gui/qt/configurationpanelui.cpp b/src/gui/qt/configurationpanelui.cpp index c18dffdadf53773dcf8284b1570adbb454d34e73..da265c5f05bc6f7f992416601761063af796b11d 100644 --- a/src/gui/qt/configurationpanelui.cpp +++ b/src/gui/qt/configurationpanelui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'gui/qt/configurationpanel.ui' ** -** Created: Fri May 20 14:27:25 2005 +** Created: Tue May 24 16:49:53 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/configurationpanelui.h b/src/gui/qt/configurationpanelui.h index 5b6774411ce70d377a0bbfd02319c67120e73449..1c2a3061a122c60ff0224232332452b3b2b0aa61 100644 --- a/src/gui/qt/configurationpanelui.h +++ b/src/gui/qt/configurationpanelui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'gui/qt/configurationpanel.ui' ** -** Created: Fri May 20 14:27:25 2005 +** Created: Tue May 24 16:49:53 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/phonebookui.cpp b/src/gui/qt/phonebookui.cpp index 50570c2965044ad8d0d9df060762321f3dae0e57..32083e80ab16907b8a40fb43ad62a120f06c795f 100644 --- a/src/gui/qt/phonebookui.cpp +++ b/src/gui/qt/phonebookui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'gui/qt/phonebook.ui' ** -** Created: Fri May 20 14:27:25 2005 +** Created: Tue May 24 16:49:52 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/phonebookui.h b/src/gui/qt/phonebookui.h index b4944c4b63c62cbea0d1921b35d6d4b71dda430a..03e17b3e87973185babd0229e4c4e5ec0f85e87a 100644 --- a/src/gui/qt/phonebookui.h +++ b/src/gui/qt/phonebookui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'gui/qt/phonebook.ui' ** -** Created: Fri May 20 14:27:25 2005 +** Created: Tue May 24 16:49:52 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/qtGUImainwindow.cpp b/src/gui/qt/qtGUImainwindow.cpp index 565731d815e3a09e60d97f22f6cfc4ba7856659d..bcb74b4d6de6f3b2bc3f4eb86ab8deb31ffba809 100644 --- a/src/gui/qt/qtGUImainwindow.cpp +++ b/src/gui/qt/qtGUImainwindow.cpp @@ -130,7 +130,7 @@ QtGUIMainWindow::QtGUIMainWindow (QWidget *parent, const char *name, WFlags f, Qt::WStyle_NoBorder); _currentLine = -1; _chosenLine = -1; - _freeLine = -1; + _prevLine = -1; _first = true; _chooseLine = false; _transfer = false; @@ -590,7 +590,7 @@ QtGUIMainWindow::changeLineStatePixmap (int line, line_state state) if (state == ONHOLD) { // Because for the state of line pixmap there are just 2 states // (FREE and BUSY), so we associate ONHOLD to BUSY - state = state - 1; + state = BUSY; } phLines[line]->button()->setPixmap(TabLinePixmap[line][state]); } @@ -612,6 +612,7 @@ QtGUIMainWindow::putOnHoldBusyLine (int line) { if (line != -1 and !phLines[line]->getbRinging()) { // Occurs when newly off-hook line replaces another one. + _debug("On hold line %d [id=%d]\n", line, line2id(line)); qt_onHoldCall(line2id(line)); changeLineStatePixmap(line, ONHOLD); return 1; @@ -749,15 +750,18 @@ QtGUIMainWindow::peerHungupCall (short id) { int line = id2line(id); + if (line == getCurrentLine()) { + stopCallTimer(id); + _callmanager->displayStatus(HUNGUP_STATUS); + setCurrentLine(-1); + } getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus())); changeLineStatePixmap(line, FREE); - stopCallTimer(id); getPhoneLine(id)->setbRinging(false); getPhoneLine(id)->setCallId(0); setChooseLine(false); - setCurrentLine(-1); _TabIncomingCalls[line] = -1; - + return 1; } @@ -827,6 +831,7 @@ QtGUIMainWindow::qt_outgoingCall (void) id = outgoingCall(to); if (id > 0) { line = associateCall2Line(id); + _debug("Call %d -> line %d\n", id, line); setCurrentLine(line); displayStatus(TRYING_STATUS); @@ -961,7 +966,6 @@ QtGUIMainWindow::toggleLine (int line) busyLine = busyLineNumber(); id = line2id(line); - _debug("line2id(line) = %d and busy line = %d\n", id, busyLine); if (id > 0) { // If the call-id already exists call = getCall(id); @@ -1007,11 +1011,13 @@ QtGUIMainWindow::toggleLine (int line) setChosenLine(line); putOnHoldBusyLine(busyLine); - if (getFreeLine() != -1 and getFreeLine() != line) { - changeLineStatePixmap(getFreeLine(), FREE); + if (getPrevLine() != -1 and getPrevLine() != line + and phLines[getPrevLine()]->isFree()) { + changeLineStatePixmap(getPrevLine(), FREE); } - setFreeLine(line); + setPrevLine(line); + _lcd->setInFunction(false); _lcd->clearBuffer(); dialtone(true); @@ -1136,6 +1142,7 @@ QtGUIMainWindow::volumeMicChanged (int val) { void QtGUIMainWindow::registerSlot (void) { + _panel->saveSlot(); registerVoIPLink(); } @@ -1335,7 +1342,6 @@ QtGUIMainWindow::blinkRingSlot (void) { static bool isOn = false; int state = BUSY; - int line; int i; if (isThereIncomingCall() != -1) { diff --git a/src/gui/qt/qtGUImainwindow.h b/src/gui/qt/qtGUImainwindow.h index 8726377c0e748ba6fd231ed434ba4658afdac54a..332e7b3381affea1c5f70a15deffcdcbfa9b2168 100644 --- a/src/gui/qt/qtGUImainwindow.h +++ b/src/gui/qt/qtGUImainwindow.h @@ -277,9 +277,9 @@ private: // line by the user bool _chooseLine; int _chosenLine; - int _freeLine; - inline void setFreeLine(int line) { _freeLine = line; } - inline int getFreeLine(void) { return _freeLine; } + int _prevLine; + inline void setPrevLine(int line) { _prevLine = line; } + inline int getPrevLine(void) { return _prevLine; } // Array of incoming calls int _TabIncomingCalls[NUMBER_OF_LINES]; diff --git a/src/gui/qt/url_inputui.cpp b/src/gui/qt/url_inputui.cpp index 179f1048c6ed4ed06e089f4eacd5f18561fc0489..076e06fd8366ba2cf86fb66de7f13b8950a55edf 100644 --- a/src/gui/qt/url_inputui.cpp +++ b/src/gui/qt/url_inputui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'gui/qt/url_input.ui' ** -** Created: Fri May 20 14:27:25 2005 +** Created: Tue May 24 16:49:53 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/url_inputui.h b/src/gui/qt/url_inputui.h index 26c7c91f2a780b9618744ef7ed71846fb958436b..1f0d81cb2815864b5ef115b516d30e6739c7c7bd 100644 --- a/src/gui/qt/url_inputui.h +++ b/src/gui/qt/url_inputui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'gui/qt/url_input.ui' ** -** Created: Fri May 20 14:27:25 2005 +** Created: Tue May 24 16:49:52 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/manager.cpp b/src/manager.cpp index 2d0cb3ded2eecc7cb3a5b7efd35b69f0ebae0489..dc564e44b11b40327c2ee8fd37860a87fbf624be 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -100,6 +100,11 @@ Manager::~Manager (void) delete _voIPLinkVector; delete _error; delete _tone; + delete _codecDescVector; + delete audiodriver; +#ifdef ALSA + delete audiodriverReadAlsa; +#endif } void @@ -211,7 +216,6 @@ Manager::pushBackNewCall (short id, enum CallType type) { Call* call = new Call(this, id, type, _voIPLinkVector->at(DFT_VOIP_LINK)); // Set the wanted voip-link (first of the list) - _debug("new Call @ 0X%d\n", call); _callVector->push_back(call); } @@ -242,7 +246,7 @@ Manager::outgoingCall (const string& to) id = generateNewCallId(); pushBackNewCall(id, Outgoing); - _debug("\nOutgoing Call with identifiant %d\n", id); + _debug("Outgoing Call with identifiant %d\n", id); call = getCall(id); call->setStatus(string(TRYING_STATUS)); @@ -444,6 +448,7 @@ Manager::incomingCall (short id) call->setState(Progressing); ringtone(true); _gui->incomingCall(id); + displayStatus(RINGING_STATUS); return 1; } @@ -458,6 +463,7 @@ Manager::peerAnsweredCall (short id) call->setState(Answered); _gui->peerAnsweredCall(id); ringback(false); + displayStatus(CONNECTED_STATUS); return 1; } @@ -471,7 +477,7 @@ Manager::peerRingingCall (short id) call->setState(Ringing); _gui->peerRingingCall(id); ringback(true); - + displayStatus(RINGING_STATUS); return 1; } diff --git a/src/sipcall.cpp b/src/sipcall.cpp index 69aaec0aa40720a58e277d6998c180a67ee52aa9..349ec07067d35e9a53adf2b19204f4e218c7d599 100644 --- a/src/sipcall.cpp +++ b/src/sipcall.cpp @@ -37,7 +37,7 @@ SipCall::SipCall (short id, CodecDescriptorVector* cdv) _cdv = cdv; _audiocodec = NULL; _standby = false; - //this->usehold = false; + enable_audio = -1; } diff --git a/src/sipcall.h b/src/sipcall.h index ea7f9c3ac5b3d7c186003e639ce5df7652263c8f..3ebafe796bb5561751c49aab382a37caf5488deb 100644 --- a/src/sipcall.h +++ b/src/sipcall.h @@ -39,7 +39,6 @@ public: SipCall (short id, CodecDescriptorVector* cdv); ~SipCall (void); - bool usehold; int payload; int enable_audio; /* 1 started, -1 stopped */ diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp index b4e45e1b524e4885fd8844f355ef97d847e7238b..ba320ef2933bf49860bbc4d6ab1fa5938c8eadf0 100644 --- a/src/sipvoiplink.cpp +++ b/src/sipvoiplink.cpp @@ -404,7 +404,7 @@ SipVoIPLink::getEvent (void) id = _manager->generateNewCallId(); _manager->pushBackNewCall(id, Incoming); - _debug("\nIncoming Call with identifiant %d [cid = %d, did = %d]\n", + _debug("Incoming Call with identifiant %d [cid = %d, did = %d]\n", id, event->cid, event->did); _debug("Local audio port: %d\n", _localPort); @@ -424,7 +424,6 @@ SipVoIPLink::getEvent (void) // Associate an audio port with a call getSipCall(id)->setLocalAudioPort(_localPort); - _manager->displayStatus(RINGING_STATUS); break; // The peer-user answers @@ -439,6 +438,7 @@ SipVoIPLink::getEvent (void) // Answer if (id > 0 and !_manager->getCall(id)->isOnHold() and !_manager->getCall(id)->isOffHold()) { + getSipCall(id)->setStandBy(false); getSipCall(id)->setLocalAudioPort(_localPort); getSipCall(id)->answeredCall(event); _manager->peerAnsweredCall(id); @@ -449,7 +449,6 @@ SipVoIPLink::getEvent (void) __FILE__, __LINE__); exit(1); } - _manager->displayStatus(CONNECTED_STATUS); } break; @@ -463,13 +462,12 @@ SipVoIPLink::getEvent (void) getSipCall(id)->ringingCall(event); _manager->peerRingingCall(id); } - _manager->displayStatus(RINGING_STATUS); break; case EXOSIP_CALL_REDIRECTED: break; - // The remote peer closed the phone call(we received BYE). + // The peer-user closed the phone call(we received BYE). case EXOSIP_CALL_CLOSED: id = findCallId(event); _debug("Call is closed [id = %d, cid = %d, did = %d]\n", @@ -479,7 +477,6 @@ SipVoIPLink::getEvent (void) _manager->peerHungupCall(id); _audiortp->closeRtpSession(getSipCall(id)); deleteSipCall(id); - _manager->displayStatus(HUNGUP_STATUS); } break; @@ -654,7 +651,6 @@ void SipVoIPLink::newIncomingCall (short callid) { SipCall* sipcall = new SipCall(callid, _manager->getCodecDescVector()); - _debug("new SipCall @ 0X%d\n", sipcall); _sipcallVector->push_back(sipcall); } diff --git a/src/user_cfg.h b/src/user_cfg.h index c0d6701cd77e738d44a25e7874e8ee61a4ffc89e..796af46d0e7796628fefe308915e5d0e3a7a611c 100644 --- a/src/user_cfg.h +++ b/src/user_cfg.h @@ -80,7 +80,7 @@ #define CONFIRM_QUIT "Options.confirmQuit" #define ZONE_TONE "Options.zoneToneChoice" #define CHECKED_TRAY "Options.checkedTray" -#define VOICEMAIL_NUM "Themes.voicemailNumber" +#define VOICEMAIL_NUM "Options.voicemailNumber" // Default values #define DFT_VOIP_LINK 0 // index of the first VoIP link by default