diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c index 3702ba61b274e275b86c83025597bebcccd5dee4..0de33223d1a65a311e1ece37a7e7c7ddff535ce5 100644 --- a/sflphone-gtk/src/actions.c +++ b/sflphone-gtk/src/actions.c @@ -233,7 +233,7 @@ gboolean sflphone_init() current_calls = calltab_init(); history = calltab_init(); contacts = calltab_init(); - if(SHOW_SEARCHBAR) histfilter = create_filter(GTK_TREE_MODEL(history->store)); + //if(SHOW_SEARCHBAR) histfilter = create_filter(GTK_TREE_MODEL(history->store)); init(); account_list_init (); codec_list_init(); @@ -530,23 +530,18 @@ process_dialing(call_t * c, guint keyval, gchar * key) sflphone_new_call() { + call_t *c; + gchar *from, *to; + sflphone_on_hold(); // Play a tone when creating a new call if( call_list_get_size(current_calls) == 0 ) dbus_start_tone( TRUE , ( voice_mails > 0 )? TONE_WITH_MESSAGE : TONE_WITHOUT_MESSAGE) ; - call_t * c = g_new0 (call_t, 1); - c->state = CALL_STATE_DIALING; - c->from = g_strconcat("\"\" <>", NULL); - - c->callID = g_new0(gchar, 30); - g_sprintf(c->callID, "%d", rand()); - - c->to = g_strdup(""); - - c->_start = 0; - c->_stop = 0; + to = g_strdup(""); + from = g_strconcat("\"\" <>", NULL); + create_new_call (to, from, CALL_STATE_DIALING, "", &c); call_list_add(current_calls,c); update_call_tree_add(current_calls,c); @@ -687,6 +682,9 @@ sflphone_place_call ( call_t * c ) if(c->state == CALL_STATE_DIALING && strcmp(c->to, "") != 0) { + + format_phone_number (&c->to); + if( account_list_get_size() == 0 ) { notify_no_accounts(); @@ -749,6 +747,7 @@ sflphone_place_call ( call_t * c ) } // Update history c->history_state = OUTGOING; + g_print ("add in history\n"); call_list_add(history, c); } } @@ -866,3 +865,13 @@ sflphone_fill_codec_list() } } +void format_phone_number (gchar **number) { + + gchar *_number; + + _number = *number; + + strip_spaces (&_number); + + +} diff --git a/sflphone-gtk/src/calltab.h b/sflphone-gtk/src/calltab.h index 7d84696df2fa4f4471455b09859b54ccb75d5a79..d3b85ca977f85f159ae9e13dafb44d1a25f09d9b 100644 --- a/sflphone-gtk/src/calltab.h +++ b/sflphone-gtk/src/calltab.h @@ -23,7 +23,7 @@ #include <calllist.h> #include <gtk/gtk.h> -GtkTreeModel* histfilter; +//GtkTreeModel* histfilter; calltab_t* calltab_init(); diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c index b9fbdab365ebf7065185f8e2469a834cb0fc19e8..f0f1fdfdeca03d9fb872b338d7771a7d57edfc3a 100644 --- a/sflphone-gtk/src/calltree.c +++ b/sflphone-gtk/src/calltree.c @@ -295,80 +295,80 @@ toolbar_update_buttons () gtk_signal_handler_unblock(transfertButton, transfertButtonConnId); call_t * selectedCall = call_get_selected(active_calltree); - if (selectedCall) - { - switch(selectedCall->state) - { - case CALL_STATE_INCOMING: - gtk_widget_set_sensitive( GTK_WIDGET(pickupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - g_object_ref(callButton); - gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton)); - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0); - break; - case CALL_STATE_HOLD: - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(unholdButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); - g_object_ref(holdButton); - gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(holdButton)); - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), unholdButton, 3); - break; - case CALL_STATE_RINGING: - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); - break; - case CALL_STATE_DIALING: - if( active_calltree != history ) gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(pickupButton), TRUE); - g_object_ref(callButton); - gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton)); - gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0); - break; - case CALL_STATE_CURRENT: - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(holdButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(transfertButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(recButton), TRUE); - break; - case CALL_STATE_BUSY: - case CALL_STATE_FAILURE: - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - break; - case CALL_STATE_TRANSFERT: - gtk_signal_handler_block(GTK_OBJECT(transfertButton),transfertButtonConnId); - gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transfertButton), TRUE); - gtk_signal_handler_unblock(transfertButton, transfertButtonConnId); - gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(holdButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(transfertButton), TRUE); - break; - case CALL_STATE_RECORD: - gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(holdButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(transfertButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); - gtk_widget_set_sensitive( GTK_WIDGET(recButton), TRUE); - break; - default: - g_warning("Toolbar update - Should not happen!"); - break; - } - } - else - { - if( account_list_get_size() > 0 ) + if (selectedCall) { - gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE ); - gtk_widget_set_sensitive( GTK_WIDGET(mailboxButton), TRUE ); + switch(selectedCall->state) + { + case CALL_STATE_INCOMING: + gtk_widget_set_sensitive( GTK_WIDGET(pickupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + g_object_ref(callButton); + gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton)); + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0); + break; + case CALL_STATE_HOLD: + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(unholdButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); + g_object_ref(holdButton); + gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(holdButton)); + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), unholdButton, 3); + break; + case CALL_STATE_RINGING: + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); + break; + case CALL_STATE_DIALING: + if( active_calltree == current_calls ) gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(pickupButton), TRUE); + g_object_ref(callButton); + gtk_container_remove(GTK_CONTAINER(toolbar), GTK_WIDGET(callButton)); + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), pickupButton, 0); + break; + case CALL_STATE_CURRENT: + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(holdButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(transfertButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(recButton), TRUE); + break; + case CALL_STATE_BUSY: + case CALL_STATE_FAILURE: + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + break; + case CALL_STATE_TRANSFERT: + gtk_signal_handler_block(GTK_OBJECT(transfertButton),transfertButtonConnId); + gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transfertButton), TRUE); + gtk_signal_handler_unblock(transfertButton, transfertButtonConnId); + gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(holdButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(transfertButton), TRUE); + break; + case CALL_STATE_RECORD: + gtk_widget_set_sensitive( GTK_WIDGET(hangupButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(holdButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(transfertButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE); + gtk_widget_set_sensitive( GTK_WIDGET(recButton), TRUE); + break; + default: + g_warning("Toolbar update - Should not happen!"); + break; + } } else { - gtk_widget_set_sensitive( GTK_WIDGET(callButton), FALSE); + if( account_list_get_size() > 0 ) + { + gtk_widget_set_sensitive( GTK_WIDGET(callButton), TRUE ); + gtk_widget_set_sensitive( GTK_WIDGET(mailboxButton), TRUE ); + } + else + { + gtk_widget_set_sensitive( GTK_WIDGET(callButton), FALSE); + } } - } } @@ -399,54 +399,58 @@ void row_activated(GtkTreeView *tree_view UNUSED, GtkTreeViewColumn *column UNUSED, void * data UNUSED) { - g_print("double click action\n"); - call_t* selectedCall; - call_t* new_call; - gchar *to, *from, *account_id; - selectedCall = call_get_selected( active_calltree ); + call_t* selectedCall; + call_t* new_call; + gchar *to, *from, *account_id; + + g_print("double click action\n"); + + selectedCall = call_get_selected( active_calltree ); - if (selectedCall) - { - // Get the right event from the right calltree - if( active_calltree == current_calls ) + if (selectedCall) { - switch(selectedCall->state) - { - case CALL_STATE_INCOMING: - dbus_accept(selectedCall); - stop_notification(); - break; - case CALL_STATE_HOLD: - dbus_unhold(selectedCall); - break; - case CALL_STATE_RINGING: - case CALL_STATE_CURRENT: - case CALL_STATE_BUSY: - case CALL_STATE_FAILURE: - break; - case CALL_STATE_DIALING: - sflphone_place_call (selectedCall); - break; - default: - g_warning("Row activated - Should not happen!"); - break; - } - } - // if history - else - { - to = g_strdup(call_get_number(selectedCall)); - from = g_strconcat("\"\" <", call_get_number(selectedCall), ">",NULL); - account_id = g_strdup (selectedCall->accountID); - - create_new_call (to, from, CALL_STATE_DIALING, account_id, &new_call); - - call_list_add(current_calls, new_call); - update_call_tree_add(current_calls, new_call); - sflphone_place_call(new_call); - display_calltree(current_calls); + // Get the right event from the right calltree + if( active_calltree == current_calls ) + { + switch(selectedCall->state) + { + case CALL_STATE_INCOMING: + dbus_accept(selectedCall); + stop_notification(); + break; + case CALL_STATE_HOLD: + dbus_unhold(selectedCall); + break; + case CALL_STATE_RINGING: + case CALL_STATE_CURRENT: + case CALL_STATE_BUSY: + case CALL_STATE_FAILURE: + break; + case CALL_STATE_DIALING: + sflphone_place_call (selectedCall); + break; + default: + g_warning("Row activated - Should not happen!"); + break; + } + } + + // If history or contact: double click action places a new call + else + { + to = g_strdup(call_get_number(selectedCall)); + from = g_strconcat("\"\" <", call_get_number(selectedCall), ">",NULL); + account_id = g_strdup (selectedCall->accountID); + + // Create a new call + create_new_call (to, from, CALL_STATE_DIALING, account_id, &new_call); + + call_list_add(current_calls, new_call); + update_call_tree_add(current_calls, new_call); + sflphone_place_call(new_call); + display_calltree(current_calls); + } } - } } GtkWidget * diff --git a/sflphone-gtk/src/historyfilter.c b/sflphone-gtk/src/historyfilter.c deleted file mode 100644 index db1d405246aa83a8dd83ea1d07a243c898763d64..0000000000000000000000000000000000000000 --- a/sflphone-gtk/src/historyfilter.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2008 Savoir-Faire Linux inc. - * Author: Antoine Reversat <antoine.reversat@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include <string.h> - -#include <historyfilter.h> -#include <calltree.h> - -GtkWidget * filter_entry; - -GtkTreeModel* -create_filter(GtkTreeModel* child) -{ - GtkTreeModel* ret = gtk_tree_model_filter_new(child, NULL); - gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(ret), is_visible, NULL, NULL); - return GTK_TREE_MODEL(ret); -} - -gboolean -is_visible(GtkTreeModel* model, GtkTreeIter* iter, gpointer data UNUSED) -{ - if( SHOW_SEARCHBAR ) - { - GValue val; - - gchar* text = NULL; - gchar* search = (gchar*)gtk_entry_get_text(GTK_ENTRY(filter_entry)); - memset (&val, 0, sizeof(val)); - gtk_tree_model_get_value(GTK_TREE_MODEL(model), iter, 1, &val); - if(G_VALUE_HOLDS_STRING(&val)){ - text = (gchar *)g_value_get_string(&val); - } - if(text != NULL && g_ascii_strncasecmp(search, _("Search"), 6) != 0){ - return g_regex_match_simple(search, text, G_REGEX_CASELESS, 0); - } - g_value_unset (&val); - return TRUE; - } - return TRUE; -} - -void -filter_entry_changed(GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED) -{ - gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(historyButton), TRUE); - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(histfilter)); -} - -void -clear_filter_entry_if_default(GtkWidget* widget UNUSED, gpointer user_data UNUSED) -{ - if(g_ascii_strncasecmp(gtk_entry_get_text(GTK_ENTRY(filter_entry)), _("Search"), 6) == 0) - gtk_entry_set_text(GTK_ENTRY(filter_entry), ""); -} - -GtkWidget* -create_filter_entry() -{ - GtkWidget* image; - GtkWidget* ret = gtk_hbox_new(FALSE, 0); - - filter_entry = sexy_icon_entry_new(); - //filter_entry = gtk_entry_new(); - image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_SMALL_TOOLBAR); - sexy_icon_entry_set_icon( SEXY_ICON_ENTRY(filter_entry), SEXY_ICON_ENTRY_PRIMARY , GTK_IMAGE(image) ); - sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(filter_entry) ); - gtk_entry_set_text(GTK_ENTRY(filter_entry), _("Search")); - g_signal_connect(GTK_ENTRY(filter_entry), "changed", G_CALLBACK(filter_entry_changed), NULL); - g_signal_connect(GTK_ENTRY(filter_entry), "grab-focus", G_CALLBACK(clear_filter_entry_if_default), NULL); - - gtk_box_pack_start(GTK_BOX(ret), filter_entry, TRUE, TRUE, 0); - return ret; -} diff --git a/sflphone-gtk/src/historyfilter.h b/sflphone-gtk/src/historyfilter.h deleted file mode 100644 index 72d46b8ce7d640dbd5ae0f1c9b9adb2eb2462b66..0000000000000000000000000000000000000000 --- a/sflphone-gtk/src/historyfilter.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2007 Savoir-Faire Linux inc. - * Author: Antoine Reversat <antoine.reversat@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __HFILTER_H__ -#define __HFILTER_H__ - -#include <calllist.h> -#include <gtk/gtk.h> -#include <libsexy/sexy-icon-entry.h> - -GtkTreeModel* create_filter(GtkTreeModel* child); - -gboolean is_visible(GtkTreeModel* model, GtkTreeIter* iter, gpointer data); -GtkWidget* create_filter_entry(); -#endif diff --git a/sflphone-gtk/src/mainwindow.c b/sflphone-gtk/src/mainwindow.c index 5eb09084712bba75755e6280d47930bcf7e927ad..02d274ceeaace8181fd2ab4c1e8918707054f69e 100644 --- a/sflphone-gtk/src/mainwindow.c +++ b/sflphone-gtk/src/mainwindow.c @@ -172,7 +172,7 @@ create_main_window () /* dont't show the contact list */ gtk_widget_hide(contacts->tree); - gtk_tree_view_set_model(GTK_TREE_VIEW(history->view), GTK_TREE_MODEL(histfilter)); + //gtk_tree_view_set_model(GTK_TREE_VIEW(history->view), GTK_TREE_MODEL(histfilter)); // Configuration wizard if (account_list_get_size() == 0) { diff --git a/sflphone-gtk/src/menus.c b/sflphone-gtk/src/menus.c index 2030f12ccef32560ea4b0d72b016d80b6eeca1fa..e32bb3e7da16d2633925f61afde33bae05f665f8 100644 --- a/sflphone-gtk/src/menus.c +++ b/sflphone-gtk/src/menus.c @@ -650,7 +650,7 @@ create_view_menu() gtk_widget_show (volumeMenu); image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_MENU ); - searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search history")); + searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search contact")); gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( searchbarMenu ), image ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), searchbarMenu); g_signal_connect(G_OBJECT (searchbarMenu), "activate", diff --git a/sflphone-gtk/src/searchfilter.c b/sflphone-gtk/src/searchfilter.c index 8cc99aba8bb27ced019d15fc4030cb07da94540c..4df4b3d49f18798b8bd919cd8c5b5e4865229cac 100644 --- a/sflphone-gtk/src/searchfilter.c +++ b/sflphone-gtk/src/searchfilter.c @@ -106,12 +106,12 @@ static void handler_async_search (GList *hits, gpointer user_data) { } -void filter_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED) { +void filter_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED) { AddressBook_Config *addressbook_config; /* Switch to the address book when the focus is on the search bar */ - if (active_calltree == current_calls) + if (active_calltree != contacts) display_calltree (contacts); @@ -120,7 +120,12 @@ void filter_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer // Load the address book parameters addressbook_load_parameters (&addressbook_config); // Start the asynchronous search as soon as we have an entry */ - search_async (gtk_entry_get_text (GTK_ENTRY (filter_entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); + search_async (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); + } + + else if (active_calltree == history) { + // Filter the displayed calls + } } @@ -138,7 +143,6 @@ GtkWidget* create_filter_entry() { GtkWidget* ret = gtk_hbox_new(FALSE, 0); filter_entry = sexy_icon_entry_new(); - //filter_entry = gtk_entry_new(); image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_SMALL_TOOLBAR); sexy_icon_entry_set_icon( SEXY_ICON_ENTRY(filter_entry), SEXY_ICON_ENTRY_PRIMARY , GTK_IMAGE(image) ); sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(filter_entry) ); diff --git a/src/audio/audiortp.cpp b/src/audio/audiortp.cpp index 02972a3058afc50dc73fc175fd7aba350e9732f0..e483830cce819875d72de31937997a7c294244a5 100644 --- a/src/audio/audiortp.cpp +++ b/src/audio/audiortp.cpp @@ -190,6 +190,9 @@ AudioRtpRTX::initAudioRtpSession (void) try { if (_ca == 0) { return; } _audiocodec = _ca->getLocalSDP()->get_session_media (); + + if (_audiocodec == NULL) { return; } + _codecSampleRate = _audiocodec->getClockRate(); ost::InetHostAddress remote_ip(_ca->getLocalSDP()->get_remote_ip().c_str()); diff --git a/src/sdp.cpp b/src/sdp.cpp index 011875e2ef90491bac7b74e8f51711e5f600a5c7..63a5b69d58da240126aa7ebe7bc8b140e0660fcd 100644 --- a/src/sdp.cpp +++ b/src/sdp.cpp @@ -303,14 +303,20 @@ AudioCodec* Sdp::get_session_media( void ){ int nb_media; int nb_codec; + AudioCodec *codec = NULL; nb_media = _session_media.size(); - nb_codec = _session_media[0]->get_media_codec_list().size(); - - return _session_media[0]->get_media_codec_list()[0]; + if (nb_media > 0) { + nb_codec = _session_media[0]->get_media_codec_list().size(); + if (nb_codec > 0) { + codec = _session_media[0]->get_media_codec_list()[0]; + } + } + return codec; } + void Sdp::toString (void) { std::ostringstream sdp; diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp index d03acaeda31b3405514f50535cd2a167dbf33778..4053df3cc63f12e1942380599078762cb8bfa958 100644 --- a/src/sipvoiplink.cpp +++ b/src/sipvoiplink.cpp @@ -850,11 +850,17 @@ SIPVoIPLink::isRecording(const CallID& id) SIPVoIPLink::getCurrentCodecName() { - SIPCall *call = getSIPCall(Manager::instance().getCurrentCallId()); + SIPCall *call; + AudioCodec *ac; + std::string name = ""; + + call = getSIPCall(Manager::instance().getCurrentCallId()); + ac = call->getLocalSDP()->get_session_media(); - AudioCodec *ac = call->getLocalSDP()->get_session_media(); + if (ac) + name = ac->getCodecName(); - return ac->getCodecName(); + return name; } bool @@ -957,7 +963,7 @@ SIPVoIPLink::SIPStartCall(SIPCall* call, const std::string& subject UNUSED) pj_strdup2(_pool, &to, strTo.data()); pj_strdup2(_pool, &contact, account->getContact().data()); - _debug("%s %s %s\n", from.ptr, contact.ptr, to.ptr); + //_debug("%s %s %s\n", from.ptr, contact.ptr, to.ptr); // create the dialog (UAC) status = pjsip_dlg_create_uac(pjsip_ua_instance(), &from, &contact,