diff --git a/coreapi/TunnelManager.cc b/coreapi/TunnelManager.cc index f992c0dd1..02fd650f1 100644 --- a/coreapi/TunnelManager.cc +++ b/coreapi/TunnelManager.cc @@ -65,8 +65,8 @@ void TunnelManager::reconnect(){ mTunnelClient->reconnect(); } -static void sCloseRtpTransport(RtpTransport *t, void *userData){ - TunnelSocket *s=(TunnelSocket*)userData; +static void sCloseRtpTransport(RtpTransport *t){ + TunnelSocket *s=(TunnelSocket*)t->data; TunnelManager *manager=(TunnelManager*)s->getUserPointer(); manager->closeRtpTransport(t, s); } diff --git a/coreapi/bellesip_sal/sal_impl.c b/coreapi/bellesip_sal/sal_impl.c index 43926027b..917faca7e 100644 --- a/coreapi/bellesip_sal/sal_impl.c +++ b/coreapi/bellesip_sal/sal_impl.c @@ -235,20 +235,28 @@ static void process_request_event(void *ud, const belle_sip_request_event_t *eve if (dialog) { op=(SalOp*)belle_sip_dialog_get_application_data(dialog); - if (op==NULL || op->state==SalOpStateTerminated){ + + if (op == NULL && strcmp("NOTIFY",method) == 0) { + /*special case for Dialog created by notify mathing subscribe*/ + belle_sip_transaction_t * sub_trans = belle_sip_dialog_get_last_transaction(dialog); + op = (SalOp*)belle_sip_transaction_get_application_data(sub_trans); + } else if (op==NULL || op->state==SalOpStateTerminated){ ms_warning("Receiving request for null or terminated op [%p], ignored",op); return; } }else{ /*handle the case where we are receiving a request with to tag but it is not belonging to any dialog*/ - if (strcmp("INVITE",method)==0 || strcmp("NOTIFY",method)==0) { - belle_sip_header_to_t *to = belle_sip_message_get_header_by_type(req, belle_sip_header_to_t); - if (belle_sip_header_to_get_tag(to) != NULL){ - ms_warning("Receiving %s with to-tag but no know dialog here. Rejecting.", method); - resp=belle_sip_response_create_from_request(req,481); - belle_sip_provider_send_response(sal->prov,resp); - return; - } + belle_sip_header_to_t *to = belle_sip_message_get_header_by_type(req, belle_sip_header_to_t); + if ((strcmp("INVITE",method)==0 || strcmp("NOTIFY",method)==0) && (belle_sip_header_to_get_tag(to) != NULL)) { + ms_warning("Receiving %s with to-tag but no know dialog here. Rejecting.", method); + resp=belle_sip_response_create_from_request(req,481); + belle_sip_provider_send_response(sal->prov,resp); + return; + /* by default (eg. when a to-tag is present), out of dialog ACK are automatically + handled in lower layers (belle-sip) but in case it misses, it will be forwarded to us */ + } else if (strcmp("ACK",method)==0 && (belle_sip_header_to_get_tag(to) == NULL)) { + ms_warning("Receiving ACK without to-tag but no know dialog here. Ignoring"); + return; } if (strcmp("INVITE",method)==0) { diff --git a/coreapi/bellesip_sal/sal_impl.h b/coreapi/bellesip_sal/sal_impl.h index a77ed6855..9289958a7 100644 --- a/coreapi/bellesip_sal/sal_impl.h +++ b/coreapi/bellesip_sal/sal_impl.h @@ -101,7 +101,7 @@ struct SalOp{ int ref; SalOpType type; SalPrivacyMask privacy; - belle_sip_header_t *event; /*used by SalOpSubscribe kinds*/ + belle_sip_header_event_t *event; /*used by SalOpSubscribe kinds*/ SalOpSDPHandling sdp_handling; int auth_requests; /*number of auth requested for this op*/ bool_t cnx_ip_to_0000_if_sendonly_enabled; @@ -174,4 +174,6 @@ int sal_reason_to_sip_code(SalReason r); void _sal_op_add_custom_headers(SalOp *op, belle_sip_message_t *msg); +SalSubscribeStatus belle_sip_message_get_subscription_state(const belle_sip_message_t *msg); + #endif /* SAL_IMPL_H_ */ diff --git a/coreapi/bellesip_sal/sal_op_events.c b/coreapi/bellesip_sal/sal_op_events.c index 6a8107d93..a6d11b2aa 100644 --- a/coreapi/bellesip_sal/sal_op_events.c +++ b/coreapi/bellesip_sal/sal_op_events.c @@ -18,7 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "sal_impl.h" -SalSubscribeStatus get_subscription_state(belle_sip_message_t *msg){ +SalSubscribeStatus belle_sip_message_get_subscription_state(const belle_sip_message_t *msg){ belle_sip_header_subscription_state_t* subscription_state_header=belle_sip_message_get_header_by_type(msg,belle_sip_header_subscription_state_t); SalSubscribeStatus sss=SalSubscribeNone; if (subscription_state_header){ @@ -73,7 +73,7 @@ static void subscribe_process_dialog_terminated(void *ctx, const belle_sip_dialo /*notify the app that our subscription is dead*/ const char *eventname = NULL; if (op->event){ - eventname = belle_sip_header_get_unparsed_value(op->event); + eventname = belle_sip_header_event_get_package_name(op->event); } op->base.root->callbacks.notify(op, SalSubscribeTerminated, eventname, NULL); } @@ -115,7 +115,7 @@ static void subscribe_process_request_event(void *op_base, const belle_sip_reque belle_sip_request_t* req = belle_sip_request_event_get_request(event); belle_sip_dialog_state_t dialog_state; belle_sip_header_expires_t* expires = belle_sip_message_get_header_by_type(req,belle_sip_header_expires_t); - belle_sip_header_t *event_header; + belle_sip_header_event_t *event_header; belle_sip_body_handler_t *body_handler; belle_sip_response_t* resp; const char *eventname=NULL; @@ -125,7 +125,7 @@ static void subscribe_process_request_event(void *op_base, const belle_sip_reque if (op->pending_server_trans) belle_sip_object_unref(op->pending_server_trans); op->pending_server_trans=server_transaction; - event_header=belle_sip_message_get_header((belle_sip_message_t*)req,"Event"); + event_header=belle_sip_message_get_header_by_type(req,belle_sip_header_event_t); body_handler = BELLE_SIP_BODY_HANDLER(sal_op_get_body_handler(op, BELLE_SIP_MESSAGE(req))); if (event_header==NULL){ @@ -139,7 +139,7 @@ static void subscribe_process_request_event(void *op_base, const belle_sip_reque op->event=event_header; belle_sip_object_ref(op->event); } - eventname=belle_sip_header_get_unparsed_value(event_header); + eventname=belle_sip_header_event_get_package_name(event_header); if (!op->dialog) { if (strcmp(method,"SUBSCRIBE")==0){ @@ -238,10 +238,10 @@ int sal_subscribe(SalOp *op, const char *from, const char *to, const char *event } if (eventname){ if (op->event) belle_sip_object_unref(op->event); - op->event=belle_sip_header_create("Event",eventname); + op->event=belle_sip_header_event_create(eventname); belle_sip_object_ref(op->event); } - belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),op->event); + belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(op->event)); belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(belle_sip_header_expires_create(expires))); belle_sip_message_set_body_handler(BELLE_SIP_MESSAGE(req), BELLE_SIP_BODY_HANDLER(body_handler)); return sal_op_send_and_create_refresher(op,req,expires,subscribe_refresher_listener); @@ -276,6 +276,29 @@ int sal_subscribe_accept(SalOp *op){ return 0; } +int sal_notify_pending_state(SalOp *op){ + + if (op->dialog != NULL && op->pending_server_trans) { + belle_sip_request_t* notify; + belle_sip_header_subscription_state_t* sub_state; + ms_message("Sending NOTIFY with subscription state pending for op [%p]",op); + if (!(notify=belle_sip_dialog_create_request(op->dialog,"NOTIFY"))) { + ms_error("Cannot create NOTIFY on op [%p]",op); + return -1; + } + if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),BELLE_SIP_HEADER(op->event)); + sub_state=belle_sip_header_subscription_state_new(); + belle_sip_header_subscription_state_set_state(sub_state,BELLE_SIP_SUBSCRIPTION_STATE_PENDING); + belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify), BELLE_SIP_HEADER(sub_state)); + return sal_op_send_request(op,notify); + } else { + ms_warning("NOTIFY with subscription state pending for op [%p] not implemented in this case (either dialog pending trans does not exist",op); + } + + return 0; +} + + int sal_subscribe_decline(SalOp *op, SalReason reason){ belle_sip_response_t* resp = belle_sip_response_create_from_request(belle_sip_transaction_get_request(BELLE_SIP_TRANSACTION(op->pending_server_trans)), sal_reason_to_sip_code(reason)); @@ -290,7 +313,7 @@ int sal_notify(SalOp *op, const SalBodyHandler *body_handler){ if (!(notify=belle_sip_dialog_create_queued_request(op->dialog,"NOTIFY"))) return -1; - if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),op->event); + if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),BELLE_SIP_HEADER(op->event)); belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify) ,BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_ACTIVE,600))); @@ -302,7 +325,7 @@ int sal_notify_close(SalOp *op){ belle_sip_request_t* notify; if (!op->dialog) return -1; if (!(notify=belle_sip_dialog_create_queued_request(op->dialog,"NOTIFY"))) return -1; - if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),op->event); + if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),BELLE_SIP_HEADER(op->event)); belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify) ,BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_TERMINATED,-1))); return sal_op_send_request(op,notify); diff --git a/coreapi/bellesip_sal/sal_op_presence.c b/coreapi/bellesip_sal/sal_op_presence.c index dd157b3f6..62d74ba44 100644 --- a/coreapi/bellesip_sal/sal_op_presence.c +++ b/coreapi/bellesip_sal/sal_op_presence.c @@ -229,7 +229,7 @@ static void handle_notify(SalOp *op, belle_sip_request_t *req, belle_sip_dialog_ sub_state=SalSubscribeTerminated; ms_message("Outgoing subscription terminated by remote [%s]",sal_op_get_to(op)); } else { - sub_state=SalSubscribeActive; + sub_state=belle_sip_message_get_subscription_state(BELLE_SIP_MESSAGE(req)); } presence_model = process_presence_notification(op, req); if (presence_model != NULL || body==NULL) { @@ -255,10 +255,23 @@ static void presence_process_request_event(void *op_base, const belle_sip_reques belle_sip_dialog_state_t dialog_state; belle_sip_response_t* resp; const char *method=belle_sip_request_get_method(req); - + belle_sip_header_event_t *event_header; belle_sip_object_ref(server_transaction); if (op->pending_server_trans) belle_sip_object_unref(op->pending_server_trans); op->pending_server_trans=server_transaction; + event_header=belle_sip_message_get_header_by_type(req,belle_sip_header_event_t); + + if (event_header==NULL){ + ms_warning("No event header in incoming SUBSCRIBE."); + resp=sal_op_create_response_from_request(op,req,400); + belle_sip_server_transaction_send_response(server_transaction,resp); + if (!op->dialog) sal_op_release(op); + return; + } + if (op->event==NULL) { + op->event=event_header; + belle_sip_object_ref(op->event); + } if (!op->dialog) { @@ -272,7 +285,10 @@ static void presence_process_request_event(void *op_base, const belle_sip_reques } set_or_update_dialog(op, dialog); ms_message("new incoming subscription from [%s] to [%s]",sal_op_get_from(op),sal_op_get_to(op)); - }else{ /* this is a NOTIFY */ + }else if (strcmp(method,"NOTIFY")==0 && belle_sip_request_event_get_dialog(event)) { + /*special case of dialog created by notify matching subscribe*/ + set_or_update_dialog(op, belle_sip_request_event_get_dialog(event)); + } else {/* this is a NOTIFY */ ms_message("Receiving out of dialog notify"); handle_notify(op, req, belle_sip_request_event_get_dialog(event)); return; @@ -281,7 +297,11 @@ static void presence_process_request_event(void *op_base, const belle_sip_reques dialog_state=belle_sip_dialog_get_state(op->dialog); switch(dialog_state) { case BELLE_SIP_DIALOG_NULL: { - op->base.root->callbacks.subscribe_presence_received(op,sal_op_get_from(op)); + if (strcmp("NOTIFY",method)==0) { + handle_notify(op, req, belle_sip_request_event_get_dialog(event)); + } else if (strcmp("SUBSCRIBE",method)==0) { + op->base.root->callbacks.subscribe_presence_received(op,sal_op_get_from(op)); + } break; } case BELLE_SIP_DIALOG_EARLY: @@ -354,14 +374,14 @@ int sal_subscribe_presence(SalOp *op, const char *from, const char *to, int expi } } if (!op->event){ - op->event=belle_sip_header_create("Event","presence"); + op->event=belle_sip_header_event_create("presence"); belle_sip_object_ref(op->event); } belle_sip_parameters_remove_parameter(BELLE_SIP_PARAMETERS(op->base.from_address),"tag"); belle_sip_parameters_remove_parameter(BELLE_SIP_PARAMETERS(op->base.to_address),"tag"); req=sal_op_build_request(op,"SUBSCRIBE"); if( req ){ - belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),op->event); + belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(op->event)); belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(belle_sip_header_expires_create(expires))); } diff --git a/coreapi/bellesip_sal/sal_sdp.c b/coreapi/bellesip_sal/sal_sdp.c index 2398fde30..177c813ab 100644 --- a/coreapi/bellesip_sal/sal_sdp.c +++ b/coreapi/bellesip_sal/sal_sdp.c @@ -642,7 +642,7 @@ static bool_t sdp_parse_rtcp_fb_parameters(belle_sdp_media_description_t *media_ MSList *pt_it; PayloadType *pt; int8_t pt_num; - bool_t retval = FALSE; + bool_t retval = FALSE; /* Handle rtcp-fb attributes that concern all payload types. */ for (it = belle_sdp_media_description_get_attributes(media_desc); it != NULL; it = it->next) { @@ -653,7 +653,7 @@ static bool_t sdp_parse_rtcp_fb_parameters(belle_sdp_media_description_t *media_ for (pt_it = stream->payloads; pt_it != NULL; pt_it = pt_it->next) { pt = (PayloadType *)pt_it->data; apply_rtcp_fb_attribute_to_payload(fb_attribute, stream, pt); - retval = TRUE; + retval = TRUE; } } } @@ -667,14 +667,14 @@ static bool_t sdp_parse_rtcp_fb_parameters(belle_sdp_media_description_t *media_ pt_num = belle_sdp_rtcp_fb_attribute_get_id(fb_attribute); for (pt_it = stream->payloads; pt_it != NULL; pt_it = pt_it->next) { pt = (PayloadType *)pt_it->data; - retval = TRUE; + retval = TRUE; if (payload_type_get_number(pt) == (int)pt_num) { apply_rtcp_fb_attribute_to_payload(fb_attribute, stream, pt); } } } } - return retval; + return retval; } static void sal_init_rtcp_xr_description(OrtpRtcpXrConfiguration *config) { @@ -851,7 +851,7 @@ static SalStreamDescription * sdp_to_stream_description(SalMediaDescription *md, sdp_parse_media_ice_parameters(media_desc, stream); has_avpf_attributes = sdp_parse_rtcp_fb_parameters(media_desc, stream); - + /* Get RTCP-FB attributes if any */ if (sal_stream_description_has_avpf(stream)) { enable_avpf_for_stream(stream); diff --git a/coreapi/conference.cc b/coreapi/conference.cc index 48c46fdc5..208092a26 100644 --- a/coreapi/conference.cc +++ b/coreapi/conference.cc @@ -194,17 +194,16 @@ using namespace std; Conference::Participant::Participant(LinphoneCall *call) { m_uri = linphone_address_clone(linphone_call_get_remote_address(call)); - m_call = linphone_call_ref(call); + m_call = call; } Conference::Participant::Participant(const Participant &src) { m_uri = linphone_address_clone(src.m_uri); - m_call = src.m_call ? linphone_call_ref(src.m_call) : NULL; + m_call = src.m_call; } Conference::Participant::~Participant() { linphone_address_unref(m_uri); - if(m_call) linphone_call_unref(m_call); } bool Conference::Participant::operator==(const Participant &src) const { @@ -289,7 +288,7 @@ const char *Conference::stateToString(LinphoneConferenceState state) { switch(state) { case LinphoneConferenceStopped: return "Stopped"; case LinphoneConferenceStarting: return "Starting"; - case LinphoneConferenceReady: return "Ready"; + case LinphoneConferenceRunning: return "Ready"; case LinphoneConferenceStartingFailed: return "Startig failed"; default: return "Invalid state"; } @@ -331,7 +330,7 @@ LocalConference::LocalConference(LinphoneCore *core, const Conference::Params *p MSAudioConferenceParams ms_conf_params; ms_conf_params.samplerate = lp_config_get_int(m_core->config, "sound","conference_rate",16000); m_conf=ms_audio_conference_new(&ms_conf_params, core->factory); - m_state=LinphoneConferenceReady; + m_state= LinphoneConferenceRunning; } LocalConference::~LocalConference() { @@ -407,7 +406,6 @@ int LocalConference::addParticipant(LinphoneCall *call) { ms_error("Call is in state %s, it cannot be added to the conference.",linphone_call_state_to_string(call->state)); return -1; } - Conference::addParticipant(call); return 0; } @@ -425,7 +423,6 @@ int LocalConference::removeFromConference(LinphoneCall *call, bool_t active){ } } call->params->in_conference=FALSE; - Conference::removeParticipant(call); str=linphone_call_get_remote_address_as_string(call); ms_message("%s will be removed from conference", str); @@ -589,12 +586,15 @@ void LocalConference::onCallStreamStarting(LinphoneCall *call, bool isPausedByRe ms_audio_conference_add_member(m_conf,ep); ms_audio_conference_mute_member(m_conf,ep,isPausedByRemote); call->endpoint=ep; + setState(LinphoneConferenceRunning); + Conference::addParticipant(call); } void LocalConference::onCallStreamStopping(LinphoneCall *call) { ms_audio_conference_remove_member(m_conf,call->endpoint); ms_audio_endpoint_release_from_stream(call->endpoint); call->endpoint=NULL; + Conference::removeParticipant(call); } void LocalConference::onCallTerminating(LinphoneCall *call) { @@ -610,6 +610,7 @@ void LocalConference::onCallTerminating(LinphoneCall *call) { ms_audio_conference_remove_member(m_conf, m_recordEndpoint); ms_audio_endpoint_destroy(m_recordEndpoint); } + setState(LinphoneConferenceStopped); } } @@ -672,7 +673,7 @@ int RemoteConference::addParticipant(LinphoneCall *call) { } return 0; - case LinphoneConferenceReady: + case LinphoneConferenceRunning: Conference::addParticipant(call); transferToFocus(call); return 0; @@ -689,7 +690,7 @@ int RemoteConference::removeParticipant(const LinphoneAddress *uri) { int res; switch(m_state) { - case LinphoneConferenceReady: + case LinphoneConferenceRunning: if(findParticipant(uri) == NULL) { char *tmp = linphone_address_as_string(uri); ms_error("Conference: could not remove participant '%s': not in the participants list", tmp); @@ -723,7 +724,7 @@ int RemoteConference::removeParticipant(const LinphoneAddress *uri) { int RemoteConference::terminate() { m_isTerminating = true; switch(m_state) { - case LinphoneConferenceReady: + case LinphoneConferenceRunning: case LinphoneConferenceStarting: linphone_core_terminate_call(m_core, m_focusCall); reset(); @@ -741,7 +742,7 @@ int RemoteConference::terminate() { } int RemoteConference::enter() { - if(m_state != LinphoneConferenceReady) { + if(m_state != LinphoneConferenceRunning) { ms_error("Could not enter in the conference: bad conference state (%s)", stateToString(m_state)); return -1; } @@ -759,7 +760,7 @@ int RemoteConference::enter() { } int RemoteConference::leave() { - if(m_state != LinphoneConferenceReady) { + if(m_state != LinphoneConferenceRunning) { ms_error("Could not leave the conference: bad conference state (%s)", stateToString(m_state)); return -1; } @@ -777,7 +778,7 @@ int RemoteConference::leave() { } bool RemoteConference::isIn() const { - if(m_state != LinphoneConferenceReady) return false; + if(m_state != LinphoneConferenceRunning) return false; LinphoneCallState callState = linphone_call_get_state(m_focusCall); return callState == LinphoneCallStreamsRunning; } @@ -830,7 +831,7 @@ void RemoteConference::onFocusCallSateChanged(LinphoneCallState state) { it = it->next; } } - setState(LinphoneConferenceReady); + setState(LinphoneConferenceRunning); break; case LinphoneCallError: @@ -850,7 +851,7 @@ void RemoteConference::onPendingCallStateChanged(LinphoneCall *call, LinphoneCal switch(state) { case LinphoneCallStreamsRunning: case LinphoneCallPaused: - if(m_state == LinphoneConferenceReady) { + if(m_state == LinphoneConferenceRunning) { m_pendingCalls = ms_list_remove(m_pendingCalls, call); m_transferingCalls = ms_list_append(m_transferingCalls, call); linphone_core_transfer_call(m_core, call, m_focusContact); diff --git a/coreapi/conference_private.h b/coreapi/conference_private.h index bc203f794..eaa649cd1 100644 --- a/coreapi/conference_private.h +++ b/coreapi/conference_private.h @@ -43,7 +43,7 @@ typedef enum { typedef enum { LinphoneConferenceStopped, /*< Initial state */ LinphoneConferenceStarting, /*< A participant has been added but the conference is not running yet */ - LinphoneConferenceReady, /*< The conference is running */ + LinphoneConferenceRunning, /*< The conference is running */ LinphoneConferenceStartingFailed /*< A participant has been added but the initialization of the conference has failed */ } LinphoneConferenceState; /** diff --git a/coreapi/friend.c b/coreapi/friend.c index 2c3d876c1..2fa01e36d 100644 --- a/coreapi/friend.c +++ b/coreapi/friend.c @@ -814,6 +814,28 @@ LinphoneFriend *linphone_core_get_friend_by_ref_key(const LinphoneCore *lc, cons return lf; } +LinphoneFriend *linphone_core_find_friend_by_out_subscribe(const LinphoneCore *lc, SalOp *op) { + MSList *lists = lc->friends_lists; + LinphoneFriend *lf = NULL; + while (lists && !lf) { + LinphoneFriendList *list = (LinphoneFriendList *)lists->data; + lf = linphone_friend_list_find_friend_by_out_subscribe(list, op); + lists = ms_list_next(lists); + } + return lf; +} + +LinphoneFriend *linphone_core_find_friend_by_inc_subscribe(const LinphoneCore *lc, SalOp *op) { + MSList *lists = lc->friends_lists; + LinphoneFriend *lf = NULL; + while (lists && !lf) { + LinphoneFriendList *list = (LinphoneFriendList *)lists->data; + lf = linphone_friend_list_find_friend_by_inc_subscribe(list, op); + lists = ms_list_next(lists); + } + return lf; +} + #define key_compare(s1,s2) strcmp(s1,s2) LinphoneSubscribePolicy __policy_str_to_enum(const char* pol){ @@ -1530,3 +1552,6 @@ void linphone_core_migrate_friends_from_rc_to_db(LinphoneCore *lc) { ms_debug("friends migration successful: %i friends migrated", i); lp_config_set_int(lpc, "misc", "friends_migration_done", 1); } +LinphoneSubscriptionState linphone_friend_get_subscription_state(const LinphoneFriend *lf) { + return lf->out_sub_state; +} diff --git a/coreapi/friendlist.c b/coreapi/friendlist.c index 8e4696933..08d8707c7 100644 --- a/coreapi/friendlist.c +++ b/coreapi/friendlist.c @@ -389,6 +389,8 @@ void linphone_friend_list_set_rls_uri(LinphoneFriendList *list, const char *rls_ } static LinphoneFriendListStatus _linphone_friend_list_add_friend(LinphoneFriendList *list, LinphoneFriend *lf, bool_t synchronize) { + LinphoneFriendListStatus status = LinphoneFriendListInvalidFriend; + if (!list || !lf->uri || lf->friend_list) { if (!list) ms_error("linphone_friend_list_add_friend(): invalid list, null"); @@ -396,7 +398,7 @@ static LinphoneFriendListStatus _linphone_friend_list_add_friend(LinphoneFriendL ms_error("linphone_friend_list_add_friend(): invalid friend, no sip uri"); if (lf->friend_list) ms_error("linphone_friend_list_add_friend(): invalid friend, already in list"); - return LinphoneFriendListInvalidFriend; + return status; } if (ms_list_find(list->friends, lf) != NULL) { char *tmp = NULL; @@ -405,11 +407,14 @@ static LinphoneFriendListStatus _linphone_friend_list_add_friend(LinphoneFriendL ms_warning("Friend %s already in list [%s], ignored.", tmp ? tmp : "unknown", list->display_name); if (tmp) ms_free(tmp); } else { - LinphoneFriendListStatus status = linphone_friend_list_import_friend(list, lf, synchronize); + status = linphone_friend_list_import_friend(list, lf, synchronize); linphone_friend_save(lf, lf->lc); - return status; } - return LinphoneFriendListInvalidFriend; + if (list->rls_uri == NULL) { + /* Mimic the behaviour of linphone_core_add_friend() when a resource list server is not in use */ + linphone_friend_apply(lf, lf->lc); + } + return status; } LinphoneFriendListStatus linphone_friend_list_add_friend(LinphoneFriendList *list, LinphoneFriend *lf) { @@ -665,7 +670,7 @@ void linphone_friend_list_update_subscriptions(LinphoneFriendList *list, Linphon } else { ms_message("Friends list [%p] subscription update skipped since subscriptions not enabled yet", list); } - } else { + } else if (list->enable_subscriptions) { for (elem = list->friends; elem != NULL; elem = elem->next) { LinphoneFriend *lf = (LinphoneFriend *)elem->data; linphone_friend_update_subscribes(lf, cfg, only_when_registered); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 69a37018e..20ce7a383 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1762,7 +1762,10 @@ static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtab lc->network_last_check = 0; lc->network_last_status = FALSE; - lc->http_provider = belle_sip_stack_create_http_provider(sal_get_belle_sip_stack(lc->sal), "0.0.0.0"); + /* Create the http provider in dual stack mode (ipv4 and ipv6. + * If this creates problem, we may need to implement parallel ipv6/ ipv4 http requests in belle-sip. + */ + lc->http_provider = belle_sip_stack_create_http_provider(sal_get_belle_sip_stack(lc->sal), "::0"); lc->http_crypto_config = belle_tls_crypto_config_new(); belle_http_provider_set_tls_crypto_config(lc->http_provider,lc->http_crypto_config); @@ -2675,10 +2678,8 @@ void linphone_core_iterate(LinphoneCore *lc){ } if (linphone_core_get_global_state(lc) == LinphoneGlobalStartup) { if (sal_get_root_ca(lc->sal)) { - belle_tls_crypto_config_t *crypto_config = belle_tls_crypto_config_new(); - belle_tls_crypto_config_set_root_ca(crypto_config, sal_get_root_ca(lc->sal)); - belle_http_provider_set_tls_crypto_config(lc->http_provider, crypto_config); - belle_sip_object_unref(crypto_config); + belle_tls_crypto_config_set_root_ca(lc->http_crypto_config, sal_get_root_ca(lc->sal)); + belle_http_provider_set_tls_crypto_config(lc->http_provider, lc->http_crypto_config); } linphone_core_notify_display_status(lc, _("Configuring")); diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 9083fbfc1..084869204 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -3727,10 +3727,12 @@ extern "C" jobjectArray _LinphoneChatRoomImpl_getHistory(JNIEnv* env, jobject th env->SetObjectArrayElement(jHistory, i, jmsg); env->DeleteLocalRef(jmsg); } + history = history->next; } - - ms_list_free(list); + /*getChatMessage() acquired a ref that is "transfered" to the java object. We must drop + * the reference given by linphone_chat_room_get_history_range()*/ + ms_list_free_with_data(list, (void (*)(void*))linphone_chat_message_unref); return jHistory; } extern "C" jobjectArray Java_org_linphone_core_LinphoneChatRoomImpl_getHistoryRange(JNIEnv* env @@ -5328,12 +5330,19 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCoreImpl_publish(JNIEnv // LpConfig extern "C" jlong Java_org_linphone_core_LpConfigImpl_newLpConfigImpl(JNIEnv *env, jobject thiz, jstring file) { - const char *cfile = env->GetStringUTFChars(file, NULL); - LpConfig *lp = lp_config_new(cfile); + const char *cfile = env->GetStringUTFChars(file, NULL); + LpConfig *lp = lp_config_new(cfile); env->ReleaseStringUTFChars(file, cfile); return (jlong) lp; } +extern "C" jlong Java_org_linphone_core_LpConfigImpl_newLpConfigImplFromBuffer(JNIEnv *env, jobject thiz, jstring buffer) { + const char *cbuffer = env->GetStringUTFChars(buffer, NULL); + LpConfig *lp = lp_config_new_from_buffer(cbuffer); + env->ReleaseStringUTFChars(buffer, cbuffer); + return (jlong) lp; +} + extern "C" void Java_org_linphone_core_LpConfigImpl_sync(JNIEnv *env, jobject thiz, jlong lpc) { LpConfig *lp = (LpConfig *)lpc; lp_config_sync(lp); diff --git a/coreapi/linphonefriend.h b/coreapi/linphonefriend.h index 80192471a..1d52fc212 100644 --- a/coreapi/linphonefriend.h +++ b/coreapi/linphonefriend.h @@ -278,6 +278,14 @@ LINPHONE_PUBLIC void linphone_friend_done(LinphoneFriend *fr); */ LINPHONE_PUBLIC LinphoneOnlineStatus linphone_friend_get_status(const LinphoneFriend *lf); +/** + * Get subscription state of a friend + * @param[in] lf A #LinphoneFriend object + * @return #LinphoneSubscriptionState + */ + +LINPHONE_PUBLIC LinphoneSubscriptionState linphone_friend_get_subscription_state(const LinphoneFriend *lf); + /** * Get the presence model of a friend * @param[in] lf A #LinphoneFriend object diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 81486e93e..52e75d6c7 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -193,13 +193,12 @@ static int create_chat_message(void *data, int argc, char **argv, char **colName if(atoi(argv[3])==LinphoneChatMessageIncoming){ new_message->dir=LinphoneChatMessageIncoming; linphone_chat_message_set_from(new_message,linphone_chat_room_get_peer_address(cr)); - linphone_chat_message_set_to(new_message,local_addr); + new_message->to = local_addr; /*direct assignation to avoid a copy*/ } else { new_message->dir=LinphoneChatMessageOutgoing; - linphone_chat_message_set_from(new_message,local_addr); + new_message->from = local_addr; /*direct assignation to avoid a copy*/ linphone_chat_message_set_to(new_message,linphone_chat_room_get_peer_address(cr)); } - linphone_address_destroy(local_addr); new_message->time = (time_t)atol(argv[9]); new_message->is_read=atoi(argv[6]); diff --git a/coreapi/offeranswer.c b/coreapi/offeranswer.c index 1c29fea1c..c8926d8aa 100644 --- a/coreapi/offeranswer.c +++ b/coreapi/offeranswer.c @@ -198,8 +198,8 @@ static MSList *match_payloads(MSFactory *factory, const MSList *local, const MSL if (p2->send_fmtp){ payload_type_append_send_fmtp(matched,p2->send_fmtp); } - matched->flags|=PAYLOAD_TYPE_FLAG_CAN_RECV|PAYLOAD_TYPE_FLAG_CAN_SEND; - if (p2->flags & PAYLOAD_TYPE_RTCP_FEEDBACK_ENABLED) { + payload_type_set_flag(matched, PAYLOAD_TYPE_FLAG_CAN_RECV|PAYLOAD_TYPE_FLAG_CAN_SEND); + if (matched->flags & PAYLOAD_TYPE_RTCP_FEEDBACK_ENABLED && p2->flags & PAYLOAD_TYPE_RTCP_FEEDBACK_ENABLED) { payload_type_set_flag(matched, PAYLOAD_TYPE_RTCP_FEEDBACK_ENABLED); /* Negotiation of AVPF features (keep common features) */ matched->avpf.features &= p2->avpf.features; diff --git a/coreapi/presence.c b/coreapi/presence.c index 5d91b7ff3..22887cfd1 100644 --- a/coreapi/presence.c +++ b/coreapi/presence.c @@ -1509,12 +1509,13 @@ void linphone_subscription_new(LinphoneCore *lc, SalOp *op, const char *from){ ms_message("Receiving new subscription from %s.",from); /* check if we answer to this subscription */ - if (linphone_core_get_default_friend_list(lc) != NULL) { - lf = linphone_friend_list_find_friend_by_address(linphone_core_get_default_friend_list(lc), uri); - } + lf = linphone_core_find_friend(lc, uri); if (lf!=NULL){ linphone_friend_add_incoming_subscription(lf, op); lf->inc_subscribe_pending=TRUE; + if (lp_config_get_int(lc->config,"sip","notify_pending_state",0)) { + sal_notify_pending_state(op); + } sal_subscribe_accept(op); linphone_friend_done(lf); /*this will do all necessary actions */ }else{ @@ -1889,10 +1890,10 @@ void linphone_notify_recv(LinphoneCore *lc, SalOp *op, SalSubscribeStatus ss, Sa LinphonePresenceModel *presence = model ? (LinphonePresenceModel *)model:linphone_presence_model_new_with_activity(LinphonePresenceActivityOffline, NULL); if (linphone_core_get_default_friend_list(lc) != NULL) - lf=linphone_friend_list_find_friend_by_out_subscribe(linphone_core_get_default_friend_list(lc), op); + lf=linphone_core_find_friend_by_out_subscribe(lc, op); if (lf==NULL && lp_config_get_int(lc->config,"sip","allow_out_of_subscribe_presence",0)){ const SalAddress *addr=sal_op_get_from_address(op); - lf = linphone_friend_list_find_friend_by_address(linphone_core_get_default_friend_list(lc), (LinphoneAddress *)addr); + lf = linphone_core_find_friend(lc, (LinphoneAddress *)addr); } if (lf!=NULL){ LinphonePresenceActivity *activity = NULL; @@ -1906,6 +1907,7 @@ void linphone_notify_recv(LinphoneCore *lc, SalOp *op, SalSubscribeStatus ss, Sa linphone_friend_set_presence_model(lf, presence); lf->subscribe_active=TRUE; lf->presence_received = TRUE; + lf->out_sub_state = linphone_subscription_state_from_sal(ss); linphone_core_notify_notify_presence_received(lc,(LinphoneFriend*)lf); ms_free(tmp); if (op != lf->outsub){ @@ -1938,8 +1940,7 @@ void linphone_notify_recv(LinphoneCore *lc, SalOp *op, SalSubscribeStatus ss, Sa void linphone_subscription_closed(LinphoneCore *lc, SalOp *op){ LinphoneFriend *lf = NULL; - if (linphone_core_get_default_friend_list(lc) != NULL) - lf = linphone_friend_list_find_friend_by_inc_subscribe(linphone_core_get_default_friend_list(lc), op); + lf = linphone_core_find_friend_by_inc_subscribe(lc, op); if (lf!=NULL){ /*this will release the op*/ diff --git a/coreapi/private.h b/coreapi/private.h index 1cbecf6e4..412e39ed7 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -416,10 +416,13 @@ void linphone_friend_close_subscriptions(LinphoneFriend *lf); void _linphone_friend_release(LinphoneFriend *lf); void linphone_friend_update_subscribes(LinphoneFriend *fr, LinphoneProxyConfig *cfg, bool_t only_when_registered); void linphone_friend_notify(LinphoneFriend *lf, LinphonePresenceModel *presence); +void linphone_friend_apply(LinphoneFriend *fr, LinphoneCore *lc); void linphone_friend_add_incoming_subscription(LinphoneFriend *lf, SalOp *op); void linphone_friend_remove_incoming_subscription(LinphoneFriend *lf, SalOp *op); LinphoneFriend *linphone_friend_list_find_friend_by_inc_subscribe(const LinphoneFriendList *list, SalOp *op); LinphoneFriend *linphone_friend_list_find_friend_by_out_subscribe(const LinphoneFriendList *list, SalOp *op); +LinphoneFriend *linphone_core_find_friend_by_out_subscribe(const LinphoneCore *lc, SalOp *op); +LinphoneFriend *linphone_core_find_friend_by_inc_subscribe(const LinphoneCore *lc, SalOp *op); MSList *linphone_find_friend_by_address(MSList *fl, const LinphoneAddress *addr, LinphoneFriend **lf); bool_t linphone_core_should_subscribe_friends_only_when_registered(const LinphoneCore *lc); void linphone_core_update_friends_subscriptions(LinphoneCore *lc, LinphoneProxyConfig *cfg, bool_t only_when_registered); @@ -699,6 +702,7 @@ struct _LinphoneFriend{ LinphoneVcard *vcard; unsigned int storage_id; LinphoneFriendList *friend_list; + LinphoneSubscriptionState out_sub_state; }; BELLE_SIP_DECLARE_VPTR(LinphoneFriend); diff --git a/gtk/linphone.h b/gtk/linphone.h index 06495c19a..8be2e47f3 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -220,6 +220,7 @@ LINPHONE_PUBLIC void linphone_gtk_unmonitor_usb(void); LINPHONE_PUBLIC void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, const char *selected, DeviceCap cap); LINPHONE_PUBLIC gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); +LINPHONE_PUBLIC gchar *linphone_gtk_get_snapshot_path(void); LINPHONE_PUBLIC void linphone_gtk_schedule_restart(void); LINPHONE_PUBLIC void linphone_gtk_show_audio_assistant(void); diff --git a/gtk/main.c b/gtk/main.c index 0a145bc58..a20389bda 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -871,6 +871,29 @@ gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_ return g_build_filename(dir,filename,NULL); } +gchar *linphone_gtk_get_snapshot_path(void) { + const char *dir=g_get_user_special_dir(G_USER_DIRECTORY_PICTURES); + char filename[256]={0}; + char date[64]={0}; + time_t curtime=time(NULL); + struct tm loctime; + const char *ext="jpg"; + +#ifdef _WIN32 + loctime=*localtime(&curtime); +#else + localtime_r(&curtime,&loctime); +#endif + snprintf(date,sizeof(date)-1,"%i%02i%02i-%02i%02i%02i",loctime.tm_year+1900,loctime.tm_mon+1,loctime.tm_mday, loctime.tm_hour, loctime.tm_min, loctime.tm_sec); + snprintf(filename,sizeof(filename)-1,"%s-snapshot-%s.%s", + linphone_gtk_get_ui_config("title","Linphone"), + date, ext); + if (!dir) { + ms_message ("No directory for pictures, using [%s] instead",dir=getenv("HOME")); + } + return g_build_filename(dir,filename,NULL); +} + static gboolean linphone_gtk_start_call_do(GtkWidget *uri_bar){ const char *entered=gtk_entry_get_text(GTK_ENTRY(uri_bar)); LinphoneCore *lc=linphone_gtk_get_core(); @@ -891,7 +914,6 @@ static gboolean linphone_gtk_start_call_do(GtkWidget *uri_bar){ return FALSE; } - static void accept_incoming_call(LinphoneCall *call){ LinphoneCore *lc=linphone_gtk_get_core(); LinphoneCallParams *params = linphone_core_create_call_params(lc, call); diff --git a/gtk/videowindow.c b/gtk/videowindow.c index a58edcc1b..145ef084a 100644 --- a/gtk/videowindow.c +++ b/gtk/videowindow.c @@ -186,6 +186,12 @@ static void on_controls_response(GtkWidget *dialog, int response_id, GtkWidget * linphone_core_terminate_call(linphone_gtk_get_core(),call); } break; + case GTK_RESPONSE_APPLY: + { + LinphoneCall *call=(LinphoneCall*)g_object_get_data(G_OBJECT(video_window),"call"); + char *path = (char *)linphone_gtk_get_snapshot_path(); + linphone_call_take_video_snapshot(call, path); + } } } @@ -243,6 +249,11 @@ static GtkWidget *show_video_controls(GtkWidget *video_window){ gtk_button_set_image(GTK_BUTTON(button), image); gtk_widget_show(button); gtk_dialog_add_action_widget(GTK_DIALOG(w),button,GTK_RESPONSE_REJECT); + button=gtk_button_new_with_label(_("Take screenshot")); + image = gtk_image_new_from_icon_name("linphone-take-screenshot", GTK_ICON_SIZE_BUTTON); + gtk_button_set_image(GTK_BUTTON(button), image); + gtk_widget_show(button); + gtk_dialog_add_action_widget(GTK_DIALOG(w),button,GTK_RESPONSE_APPLY); g_signal_connect(w,"response",(GCallback)on_controls_response,video_window); timeout=g_timeout_add(3000,(GSourceFunc)gtk_widget_destroy,w); g_object_set_data(G_OBJECT(w),"timeout",GINT_TO_POINTER(timeout)); diff --git a/include/sal/sal.h b/include/sal/sal.h index ad5f67f5e..9b3b979cf 100644 --- a/include/sal/sal.h +++ b/include/sal/sal.h @@ -770,6 +770,7 @@ int sal_subscribe(SalOp *op, const char *from, const char *to, const char *event int sal_unsubscribe(SalOp *op); int sal_subscribe_accept(SalOp *op); int sal_subscribe_decline(SalOp *op, SalReason reason); +int sal_notify_pending_state(SalOp *op); int sal_notify(SalOp *op, const SalBodyHandler *body); int sal_notify_close(SalOp *op); int sal_publish(SalOp *op, const char *from, const char *to, const char*event_name, int expires, const SalBodyHandler *body); diff --git a/java/common/org/linphone/core/LinphoneChatMessage.java b/java/common/org/linphone/core/LinphoneChatMessage.java index aaef154ab..fab2bab28 100644 --- a/java/common/org/linphone/core/LinphoneChatMessage.java +++ b/java/common/org/linphone/core/LinphoneChatMessage.java @@ -234,5 +234,12 @@ public interface LinphoneChatMessage { * @throw LinphoneCoreExeption . */ void putChar(long character) throws LinphoneCoreException; + + /** + * Frees the underlying native resource of the message. + * It should not be accessed afterwards. + * This is for optimizing the memory resources at runtime. Not calling this does not result in a memory leak. + **/ + void destroy(); } diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index 88a7651e4..a61e585d2 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -103,6 +103,7 @@ abstract public class LinphoneCoreFactory { */ abstract public LinphoneAddress createLinphoneAddress(String address) throws LinphoneCoreException; abstract public LpConfig createLpConfig(String file); + abstract public LpConfig createLpConfigFromString(String buffer); /** * Enable verbose traces diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index d71ffc6a5..d36446737 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -3,7 +3,7 @@ package org.linphone.core; import java.io.UnsupportedEncodingException; public class LinphoneChatMessageImpl implements LinphoneChatMessage { - protected final long nativePtr; + protected long nativePtr; private native byte[] getText(long ptr); private native long getPeerAddress(long ptr); private native String getExternalBodyUrl(long ptr); @@ -112,7 +112,7 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { return new ErrorInfoImpl(getErrorInfo(nativePtr)); } protected void finalize() throws Throwable{ - unref(nativePtr); + destroy(); super.finalize(); } @@ -160,4 +160,10 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { public void putChar(long character) throws LinphoneCoreException { putChar(nativePtr, character); } + public void destroy(){ + if (nativePtr != 0) { + unref(nativePtr); + nativePtr = 0; + } + } } diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index f7de4785f..4b33bdf4b 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -25,8 +25,6 @@ import java.util.List; import org.linphone.mediastream.MediastreamerAndroidContext; import org.linphone.mediastream.Version; -import android.util.Log; - public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { private static boolean loadOptionalLibrary(String s) { @@ -34,18 +32,17 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { System.loadLibrary(s); return true; } catch (Throwable e) { - Log.w("LinphoneCoreFactoryImpl", "Unable to load optional library lib" + s); + //android.util.Log.w("LinphoneCoreFactoryImpl", "Unable to load optional library lib" + s); } return false; } static { List cpuabis=Version.getCpuAbis(); - String ffmpegAbi; boolean libLoaded=false; Throwable firstException=null; for (String abi : cpuabis){ - Log.i("LinphoneCoreFactoryImpl","Trying to load liblinphone for " + abi); + //android.util.Log.i("LinphoneCoreFactoryImpl","Trying to load liblinphone for " + abi); loadOptionalLibrary("ffmpeg-linphone-" + abi); //Main library try { @@ -54,7 +51,7 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { System.loadLibrary("mediastreamer_base-" + abi); System.loadLibrary("mediastreamer_voip-" + abi); System.loadLibrary("linphone-" + abi); - Log.i("LinphoneCoreFactoryImpl","Loading done with " + abi); + org.linphone.mediastream.Log.i("LinphoneCoreFactoryImpl","Loading done with " + abi); libLoaded=true; break; }catch(Throwable e) { @@ -88,7 +85,11 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { @Override public LpConfig createLpConfig(String file) { - return new LpConfigImpl(file); + return LpConfigImpl.fromFile(file); + } + + public LpConfig createLpConfigFromString(String buffer) { + return LpConfigImpl.fromBuffer(buffer); } @Override diff --git a/java/impl/org/linphone/core/LpConfigImpl.java b/java/impl/org/linphone/core/LpConfigImpl.java index d2c24e93b..a11cea023 100644 --- a/java/impl/org/linphone/core/LpConfigImpl.java +++ b/java/impl/org/linphone/core/LpConfigImpl.java @@ -18,11 +18,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; - - class LpConfigImpl implements LpConfig { - private final long nativePtr; + private long nativePtr; boolean ownPtr = false; public LpConfigImpl(long ptr) { @@ -30,13 +28,34 @@ class LpConfigImpl implements LpConfig { } private native long newLpConfigImpl(String file); + private native long newLpConfigImplFromBuffer(String buffer); private native void delete(long ptr); + @Deprecated public LpConfigImpl(String file) { nativePtr = newLpConfigImpl(file); ownPtr = true; } + private LpConfigImpl() { + nativePtr = -1; + ownPtr = false; + } + + public static LpConfigImpl fromFile(String file) { + LpConfigImpl impl = new LpConfigImpl(); + impl.nativePtr = impl.newLpConfigImpl(file); + impl.ownPtr = true; + return impl; + } + + public static LpConfigImpl fromBuffer(String buffer) { + LpConfigImpl impl = new LpConfigImpl(); + impl.nativePtr = impl.newLpConfigImplFromBuffer(buffer); + impl.ownPtr = true; + return impl; + } + protected void finalize() throws Throwable { if(ownPtr) { delete(nativePtr); diff --git a/mediastreamer2 b/mediastreamer2 index 72de22a29..2076bcda9 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 72de22a29e2f6d7330ee3ed6854437692f178a8f +Subproject commit 2076bcda91d98388f475727ea3234505679caa38 diff --git a/oRTP b/oRTP index 7fb94bc4a..5b311fe7b 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 7fb94bc4a2f30e77e740c654753d8eaa25900b1b +Subproject commit 5b311fe7b0d09002c8e595798566fe9cf6c26e34 diff --git a/pixmaps/CMakeLists.txt b/pixmaps/CMakeLists.txt index c055425a8..c8e313727 100644 --- a/pixmaps/CMakeLists.txt +++ b/pixmaps/CMakeLists.txt @@ -122,6 +122,7 @@ install(FILES linphone-call-transfer.png linphone-record.png linphone-chat-send.png + linphone-take-screenshot.png DESTINATION ${ICONS_INSTALL_DIR}/48x48/actions PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ ) diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index 96ded8baa..18dab92fa 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -37,7 +37,8 @@ dist_status48icons_DATA= \ linphone-security-pending.png \ linphone-media-play.png \ linphone-media-pause.png \ - linphone-warning.png + linphone-warning.png \ + linphone-take-screenshot.png statussvgiconsdir=$(iconsdir)/scalable/status dist_statussvgicons_DATA= \ diff --git a/pixmaps/linphone-take-screenshot.png b/pixmaps/linphone-take-screenshot.png new file mode 100644 index 000000000..7a54a9928 Binary files /dev/null and b/pixmaps/linphone-take-screenshot.png differ diff --git a/po/ar.po b/po/ar.po index 285a75008..69b2dfb11 100644 --- a/po/ar.po +++ b/po/ar.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Arabic (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ar/)\n" "MIME-Version: 1.0\n" @@ -106,15 +106,15 @@ msgstr "أنا" msgid "Couldn't find pixmap file: %s" msgstr "أيقونة غير موجودة : %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "يجري الإرسال...‏" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "لم تُرسَل الرسالة" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "نسخ" @@ -160,7 +160,7 @@ msgstr "ابدأ مرشد الصوت" msgid "Run self test and exit 0 if succeed" msgstr "شغِّل الاختبار الذاتي ثم اخرِجْ 0 إذا نجح" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -168,80 +168,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "يود %s إضافتك إلى جهات اتصاله.\nهل تريد إضافته إلى جهات اتصالك والسماح له برؤية حالة حضورك ؟\nإن كان الجواب بالرفض، سوف يجري حظر هذا الشخص مؤقتا." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "ادخل كلمة السر لـ %s\n في نطاق %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "خطأ في المكالمة" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "إنتهت المكالمة" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "مكالمة واردة" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "أجِبْ" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "ارفضْ" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "المكالمة متوقفة" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "بواسطة %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "يود %s تشغيل الفيديو. هل تقبل ذلك ؟" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "وصلة إلى الموقع وِبْ" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "لِنْفُونْ" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "الهاتف المرئي عبر الإنترنت" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (افتراضي)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "التحويل إلى %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "لا وجود للوحة الصوت على هذا الحاسوب.\nلن تتمكن من تلقي أو إجراء أي مكالمة." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "هاتف SIP المرئي الحر" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "أهلا\n" @@ -547,7 +547,7 @@ msgid "%.3f seconds" msgstr "%.3f ثانية" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "ضع السماعة" @@ -1142,11 +1142,11 @@ msgstr "إظهار لوحة الأرقام" #: ../gtk/main.ui.h:8 msgid "Import contacts from vCards" -msgstr "" +msgstr "استورد جهات الاتصال من أنساق vCard" #: ../gtk/main.ui.h:9 msgid "Export contacts as vCards" -msgstr "" +msgstr "صدِّر جهات الاتصال بنسق vCard" #: ../gtk/main.ui.h:10 msgid "_Help" @@ -1508,11 +1508,11 @@ msgstr "وسيط التعمية إجباري" #: ../gtk/parameters.ui.h:77 msgid "Mandatory" -msgstr "" +msgstr "واجب" #: ../gtk/parameters.ui.h:78 msgid "Preferred" -msgstr "" +msgstr "مستحب" #: ../gtk/parameters.ui.h:79 msgid "Encryption" @@ -1804,52 +1804,52 @@ msgstr "تهيئة وكيل http (اختياري)" msgid "Please wait" msgstr "يُرجى الانتظار" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "جاهز" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "تجري التهيئة" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "يتصل ب" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "لم يتمكن من الاتصال" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "آسف، وصل عدد المكالمات الآنية إلى حده الأقصى" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "يتصل بك" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "ويطلب ردا تلقائيا." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "يجري تعديل إعدادات المكالمة..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "متصل." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "أُلغيت المكالمة" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "لم يتمكن من توقيف المكالمة مؤقتا" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "وضع المكالمة قيد الانتظار..." @@ -1913,32 +1913,32 @@ msgstr "في عطلة" msgid "Unknown status" msgstr "حالة مجهولة" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "إن عنوان SIP الذي أدخلت غير صحيح، يجب أن يبدأ بـ \"sip:‎\" متبوعا باسم المضيف." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "إن هوية SIP التي أدخلت غير صحيحة.\nيجب أن تكون بهذا النمط sip:username@proxydomain، مثلا sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "يجري البحث عن وجهة رقم الهاتف..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "لم يتمكن من إيجاد هذا الرقم." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "تعذر الولوج بالهوية %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "‫يجري إنعاش في %s...‬" @@ -2047,16 +2047,16 @@ msgstr "خدمة غير متاحة، تجري الإعادة" msgid "Authentication token is %s" msgstr "شارة التحقق من الهوية هي %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "‫لم تُعدَّل معاملات المكالمات : %s.‬" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "عُدِّلت معاملات المكالمات بنجاج." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2101,3 +2101,7 @@ msgstr "المكالمة الصادرة" #, c-format msgid "Cannot play %s." msgstr "لم يتمكن من تشغيل %s" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/cs.po b/po/cs.po index 419c95c64..e099b19d2 100644 --- a/po/cs.po +++ b/po/cs.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Czech (http://www.transifex.com/belledonne-communications/linphone-gtk/language/cs/)\n" "MIME-Version: 1.0\n" @@ -100,15 +100,15 @@ msgstr "Já" msgid "Couldn't find pixmap file: %s" msgstr "Nelze najít soubor s obrázkem: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -154,7 +154,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -162,80 +162,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Chyba hovoru" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Hovor ukončen" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Odpovědět" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Odmítnout" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Hovor odložen" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "kým: %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s navrhuje začít videohovor. Přijímáte?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Odkaz na webovou stránku" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Výchozí)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Byly jsme přepojeni na %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Na tomto počítači nebyla objevena žádná zvuková karta.\nNebudete moci vytáčet a přijímat a zvukové hovory." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Volný SIP videofon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -538,7 +538,7 @@ msgid "%.3f seconds" msgstr "%.3f sekund" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Zavěsit" @@ -1795,52 +1795,52 @@ msgstr "Nastavit HTTP proxy (volitelné)" msgid "Please wait" msgstr "Prosím, čekejte" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Připraven." -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Navazuje se spojení" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Nelze volat" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Je nám líto, ale byl dosažen maximální počet současných hovorů." -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "vás volá" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr " a požaduje automatickou zvednutí." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Upravují se parametry hovoru…" -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Připojeno." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Hovor přerušen" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Hovor nebylo možné odložit" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Současný hovor se odkládá…" @@ -1904,32 +1904,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "Adresa SIP proxy, kterou jste zadali, není platná. Musí začínat na „sip:“ a pak musí následovat jméno stroje." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "SIP identita, kterou jste zadali, není platná.\nMěla by mít tvar sip:uživatel@proxydoména, například sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Vyhledává se umístění čísla…" -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Toto číslo nelze vyhledat." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Nelze se přihlásit jako %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2038,16 +2038,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2089,3 +2089,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/de.po b/po/de.po index 96438bb8e..4c99e91c5 100644 --- a/po/de.po +++ b/po/de.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: German (http://www.transifex.com/belledonne-communications/linphone-gtk/language/de/)\n" "MIME-Version: 1.0\n" @@ -101,15 +101,15 @@ msgstr "Eigenes Telefon" msgid "Couldn't find pixmap file: %s" msgstr "Pixmapdatei %s kann nicht gefunden werden." -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Sendevorgang..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Nachricht nicht gesendet" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Kopieren" @@ -155,7 +155,7 @@ msgstr "Starte den Audio-Assistent" msgid "Run self test and exit 0 if succeed" msgstr "Selbsttest ausführen und mit 0 beenden, wenn erfolgreich" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -163,80 +163,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Bitte geben Sie Ihr Passwort für den Benutzernamen %s\n für Bereich %s ein:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Anruf fehlgeschlagen" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Anruf beendet" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Annehmen" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Abweisen" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Anruf wird gehalten" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "von %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s schlägt vor, eine Videoübertragung zu starten. Nehmen Sie an?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Website-Verknüpfung" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Ein Internet-Video-Telefon" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Vorgabe)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Vermittlung nach %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Auf diesem Rechner können keine Soundkarten gefunden werden.\nSie können keine Audio-Anrufe tätigen oder entgegennehmen." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Ein freies SIP-Video-Telefon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Hallo\n" @@ -538,7 +538,7 @@ msgid "%.3f seconds" msgstr "%.3f Sekunden" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Auflegen" @@ -1133,11 +1133,11 @@ msgstr "Tastatur anzeigen" #: ../gtk/main.ui.h:8 msgid "Import contacts from vCards" -msgstr "" +msgstr "Kontakte aus vCards importieren" #: ../gtk/main.ui.h:9 msgid "Export contacts as vCards" -msgstr "" +msgstr "Kontakte als vCards exportieren" #: ../gtk/main.ui.h:10 msgid "_Help" @@ -1499,11 +1499,11 @@ msgstr "Medienverschlüsselung erzwingen" #: ../gtk/parameters.ui.h:77 msgid "Mandatory" -msgstr "" +msgstr "Verbindlich" #: ../gtk/parameters.ui.h:78 msgid "Preferred" -msgstr "" +msgstr "Bevorzugt" #: ../gtk/parameters.ui.h:79 msgid "Encryption" @@ -1795,52 +1795,52 @@ msgstr "Configure http proxy (optional)" msgid "Please wait" msgstr "Bitte warten" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Bereit" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Einstellen" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Verbindungsaufbau" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Anruf kann nicht getätigt werden." -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Die maximale Anzahl der gleichzeitigen Anrufe ist erreicht." -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "ruft Sie an" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr " und fragt nach automatischer Antwort." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Die Anrufparameter werden verändert..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Verbunden." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Anruf abgebrochen" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Anruf kann nicht gehalten werden" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Aktueller Anruf wird gehalten..." @@ -1904,32 +1904,32 @@ msgstr "Urlaub" msgid "Unknown status" msgstr "Unbekannter Status" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "Die von Ihnen eingegebene SIP-Proxy-Adresse ist ungültig, sie muss mit „sip:“ gefolgt vom Hostnamen beginnen." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "Die von Ihnen eingegebene SIP-Identität ist ungültig.\nSie sollte wie sip:benutzername@proxydomain aussehen, also z.B. sip:alice@beispiel.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Telefonnummernziel wird gesucht..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Diese Nummer kann nicht aufgelöst werden." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Anmeldung als %s fehlgeschlagen" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Wird auf %s aktualisiert..." @@ -2038,16 +2038,16 @@ msgstr "Service nicht verfügbar, versuche erneut" msgid "Authentication token is %s" msgstr "Authentifizierungs-Token ist %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Anrufparameter konnten nicht geändert werden: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Anrufparameter wurden erfolgreich geändert." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2088,3 +2088,7 @@ msgstr "Ausgehender Anruf" #, c-format msgid "Cannot play %s." msgstr "Kann %s nicht wiedergeben." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/es.po b/po/es.po index 26748ffea..0d3cfb6af 100644 --- a/po/es.po +++ b/po/es.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Spanish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/es/)\n" "MIME-Version: 1.0\n" @@ -97,15 +97,15 @@ msgstr "Yo" msgid "Couldn't find pixmap file: %s" msgstr "No se pudo encontrar el archivo pixmap: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Enviando..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Mensaje no enviado" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Copiar" @@ -151,7 +151,7 @@ msgstr "Iniciar el asistente de audio" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -159,80 +159,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s quiere añadirle a su lista de contactos.\nQuieres añadirle a tu lista de contactos y permitirle que vea su estado de presencia?\nSi contesta no, esta persona será bloqueada temporalmente." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Por favor, introduzca la contraseña para el usuario %s\n en el dominio %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Error en llamada" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Llamada terminada" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Llamada entrante" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Contestar" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Rechazar" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Llamada en pausa" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "por %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s solicita iniciar vídeo. ¿Acepta?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Enlace a la Web" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Opción predeterminada)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Somos transferidos a %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "No se ha encontrado una tarjeta de sonido en este equipo.\nNo será posible realizar o recibir llamadas de audio." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Un video-teléfono SIP gratuito" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Hola\n" @@ -534,7 +534,7 @@ msgid "%.3f seconds" msgstr "%.3f segundos" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Colgar" @@ -1791,52 +1791,52 @@ msgstr "Configurara el proxy http (opcional)" msgid "Please wait" msgstr "Espere por favor" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Preparado" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Configurando" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Contactando" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "No se pudo llamar" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Disculpe, se ha alcanzado el máximo número de llamadas simultáneas" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "le está llamando" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "y ha solicitado auto respuesta." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Modificando parámetros de llamada…" -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Llamada abortada" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "No se pudo pausar la llamada" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Pausando la llamada actual..." @@ -1900,32 +1900,32 @@ msgstr "" msgid "Unknown status" msgstr "Estado desconocido" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "La dirección del Proxy SIP que ha introducido no es válida, debe empezar con \"sip:\" seguido del hostname." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "La identidad SIP que ha introducido no es válida.\nDebe ser del tipo sip:username@proxydomain, como por ejemplo sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Buscando el número de teléfono del destinatario…" -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "No se ha podido resolver este número." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "No se pudo iniciar sesión como %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Cargando desde %s" @@ -2034,16 +2034,16 @@ msgstr "Servicio no disponible, reintentando" msgid "Authentication token is %s" msgstr "El tóken de autenticación es%s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Parámetros de llamada no pudieron ser modificados: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Parámetros de llamada modificados correctamente." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2084,3 +2084,7 @@ msgstr "Llamada saliente" #, c-format msgid "Cannot play %s." msgstr "No se puede reproducir %s" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/fi.po b/po/fi.po index d1c7cc1f7..3361e2d15 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Finnish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fi/)\n" "MIME-Version: 1.0\n" @@ -97,15 +97,15 @@ msgstr "Minä" msgid "Couldn't find pixmap file: %s" msgstr "Ei kyennyt lyötämään Pixmap kuvatiedostoa: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Lähetetään..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Viesti ei lähetetty" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Kopio" @@ -151,7 +151,7 @@ msgstr "Käytä ääni avustajaa" msgid "Run self test and exit 0 if succeed" msgstr "Käytä omaa testiä ja poistu 0 jo valmis" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -159,80 +159,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s haluaa lisätä sinut yhteystitohinsa.\nHaluatko hänen näkevän sinun läsnäolosi?\nJos ei, niin hänet lisätään hetkeksi mustalle listalle." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Anna salasana käyttäjänimelle %s\nmaasta %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Virhe puhelussa" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Puhelu päättyi" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Tuleva puhelu" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Vastaa" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Hylkää" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Puhelu laitettu tauolle" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "%s toimesta" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s pyytää video kuvaa. Sallitaanko?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Internet linkki" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Internet video puhelu" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Vakio)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Olemme siirtyneet %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Tähässä tietokeneessa ei ole havaittavissa ääni korttia.\nEt voi lähettää tai vastaanottaa äänellisiä puheluita." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Ilmainen SIP video puhelin." -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Hei\n" @@ -534,7 +534,7 @@ msgid "%.3f seconds" msgstr "%.3f sekunttia" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Katkaise puhelu" @@ -1791,52 +1791,52 @@ msgstr "Muokkaa http välityspalinta (valinnainen)" msgid "Please wait" msgstr "Odota" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Valmis" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Säädetään" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Yhdistetään" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Ei voinut soittaa" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Olen pahoillani, suurin yhtäaikaisten puheluiden määrä on saavutettu" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "on ottamassa yhteyttä sinuun" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "ja pyytää automaattista vastausta." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Maukataan soiton raja-arvoja..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Yhdistetty" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Puhelu keskeytetty" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Ei voinut laittaa puhelua tauolle" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Laitetaan tauolle nykyinen puhelu..." @@ -1900,32 +1900,32 @@ msgstr "Lomalla" msgid "Unknown status" msgstr "Tuntematon tila" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "Antamasi välityspalvelin osoite on kelvoton. Se täytyy alkaa \"sip:\" minkä jälkeen tulee host-verkkosolmuntunnus." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "Antamasi sip tiedot ovat kelvoton.\nSen pitäisi näyttää sip:käyttäjätunnus@välityspalvelin, kuten sip:alice@esimerkki.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Etsitään puhelinnumeron kohdetta..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Ei voi käsittää tätä numeroa." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "%s ei pystynyt kirjautumaan" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "%s on huilaamassa..." @@ -2034,16 +2034,16 @@ msgstr "Palvelin saavuttamattomissa, uudelleen yritetään" msgid "Authentication token is %s" msgstr "Todennus merkki on %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Soiton raja-arvoja ei voitu muokata: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Soiton raja-arvot ovat onnistuneesti muokattu." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2084,3 +2084,7 @@ msgstr "Lähtevä puhelu" #, c-format msgid "Cannot play %s." msgstr "Ei voi toistaa %s." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/fr.po b/po/fr.po index f3fad188e..ad7beb948 100644 --- a/po/fr.po +++ b/po/fr.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:59+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: French (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fr/)\n" "MIME-Version: 1.0\n" @@ -101,15 +101,15 @@ msgstr "Moi" msgid "Couldn't find pixmap file: %s" msgstr "Icone non trouvée: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Envoi en cours..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Message non envoyé" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Copier" @@ -155,7 +155,7 @@ msgstr "Démarre l'assistant audio" msgid "Run self test and exit 0 if succeed" msgstr "Exécuter le test local et retourner 0 en cas de succès" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -163,80 +163,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s souhaite vous ajouter à sa liste de contact.\nSouhaitez vous l'ajouter à votre liste également et l'autoriser à voir votre information de présence ?\nSi vous répondez non, cette personne sera mise temporairement sur liste noire." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Entrez le mot de passe pour %s\n sur le domaine %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Erreur lors de l'appel" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Appel terminé." -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Répondre" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Refuser" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Appel en pause" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "b>par %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s propose de démarrer la vidéo. Acceptez-vous ?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Lien site web" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Appels vidéo via internet" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (par défaut)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Transfert vers %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Aucune carte son n'a été détectée sur cet ordinateur.\nVous ne pourrez pas effectuer d'appels audio." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Un visiophone libre" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Bonjour\n" @@ -538,7 +538,7 @@ msgid "%.3f seconds" msgstr "%.3f secondes" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Raccrocher" @@ -1133,11 +1133,11 @@ msgstr "Afficher le pavé numérique" #: ../gtk/main.ui.h:8 msgid "Import contacts from vCards" -msgstr "" +msgstr "Importer des contacts depuis des vCards" #: ../gtk/main.ui.h:9 msgid "Export contacts as vCards" -msgstr "" +msgstr "Exporter les contacts en vCards" #: ../gtk/main.ui.h:10 msgid "_Help" @@ -1499,11 +1499,11 @@ msgstr "Le chiffrement media est obligatoire" #: ../gtk/parameters.ui.h:77 msgid "Mandatory" -msgstr "" +msgstr "Obligatoire" #: ../gtk/parameters.ui.h:78 msgid "Preferred" -msgstr "" +msgstr "Privilégié" #: ../gtk/parameters.ui.h:79 msgid "Encryption" @@ -1795,52 +1795,52 @@ msgstr "Configuration d'un proxy http (optionel)" msgid "Please wait" msgstr "En attente" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Prêt." -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Configuration en cours" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Appel de" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Echec de l'appel" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Désolé, le nombre maximum d'appels simultanés est atteint." -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "vous appelle" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "et sollicite un décrochage automatique." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Modifications des paramètres d'appels..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "En ligne." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Appel abandonné" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "La mise en attente a échoué" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Mise en attente de l'appel..." @@ -1904,32 +1904,32 @@ msgstr "En congé" msgid "Unknown status" msgstr "Status inconnu" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie par un nom de domaine." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "L'identité SIP que vous avez fourni est invalide.\nElle doit être de la forme sip:utilisateur@domaine, comme par exemple sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Recherche de la destination du numéro de téléphone..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "La destination n'a pu être trouvée." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Echec de la connexion en tant que %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Rafraichissement de %s..." @@ -2038,16 +2038,16 @@ msgstr "Service indisponible, nouvelle tentative" msgid "Authentication token is %s" msgstr "Le jeton d'authentification est %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Les paramètres d'appel n'ont pas pu être modifiés : %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Les paramètres d'appel ont été modifiés avec succès." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2088,3 +2088,7 @@ msgstr "Appel sortant" #, c-format msgid "Cannot play %s." msgstr "Impossible de jouer %s." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "Capture d'écran" diff --git a/po/he.po b/po/he.po index 81550b63a..28b648bfe 100644 --- a/po/he.po +++ b/po/he.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Hebrew (http://www.transifex.com/belledonne-communications/linphone-gtk/language/he/)\n" "MIME-Version: 1.0\n" @@ -101,15 +101,15 @@ msgstr "אני" msgid "Couldn't find pixmap file: %s" msgstr "לא ניתן למצוא קובץ ‫pixmap: ‫%s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "כעת שולח..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "הודעה לא נשלחה" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "העתק" @@ -155,7 +155,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -163,80 +163,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "אנא הזן סיסמה עבור משתמש %s\nבמתחם %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "שגיאת קריאה" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "שיחה הסתיימה" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "לענות" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "לדחות" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "שיחה הושהתה" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "על ידי %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "‏%s רוצה להתחיל וידאו. האם אתה מסכים ?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "קישור אתר רשת" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "וידאופון אינטרנטי" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "‫%s (ברירת מחדל)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "אנחנו מועברים אל %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "לא אותרו כרטיסי קול במחשב זה.\nלא תהיה ביכולתך לשלוח או לקבל שיחות אודיו." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "וידאופון SIP חופשי" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "שלום\n" @@ -538,7 +538,7 @@ msgid "%.3f seconds" msgstr "%.3f שניות" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "נתק" @@ -1795,52 +1795,52 @@ msgstr "הגדר http proxy (רשות)" msgid "Please wait" msgstr "נא להמתין" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "מוכן" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "תצורה" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "מתקשר כעת" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "לא ניתן להתקשר" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "הגענו אל המספר המרבי של שיחות מקבילות, עמך הסליחה" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "מתקשר/ת אליך" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr " ומבקש/ת מענה אוטומטי." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "מתאים כעת פרמטרים של שיחה..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "מקושר." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "קריאה בוטלה" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "לא ניתן להשהות את השיחה" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "משהה כעת שיחה נוכחית..." @@ -1904,32 +1904,32 @@ msgstr "חופשה" msgid "Unknown status" msgstr "מצב לא ידוע" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "כתובת sip proxy שהזנת הינה שגויה, זו צריכה להתחיל עם‭\"sip:\" ‬ לאחר שם מארח." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "זהות sip שהוזנה הינה שגויה.\nזו צריכה להיראות כמו sip:username@proxydomain, למשל sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "מחפש כעת עבור יעד מספר טלפון..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "לא ניתן לפתור את מספר זה." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "לא ניתן להתחבר בזהות %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2038,16 +2038,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "אות האימות הינה %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2088,3 +2088,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/hu.po b/po/hu.po index 68a1fb459..daa8b8909 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Hungarian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/hu/)\n" "MIME-Version: 1.0\n" @@ -97,15 +97,15 @@ msgstr "én" msgid "Couldn't find pixmap file: %s" msgstr "Nemtalálható a pixmap fájl: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -151,7 +151,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -159,80 +159,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Hiba a hívás közben" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Hívás vége" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Hívás fogadása" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Elutasítás" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Hívás várakoztatva" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "a következő által: %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s szerené elidítani a videót. Elfogadja?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Internetes oldal" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Alapértelmezett)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Át vagyunk irányítva ide: %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Hangkártya nincs érzékelve ezen a számítógépen.\nNem fog tudni hang hívásokat küldeni vagy fogadni." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Egy ingyenes SIP video-telefon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -534,7 +534,7 @@ msgid "%.3f seconds" msgstr "%.3f másodperc" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Befejezés" @@ -1791,52 +1791,52 @@ msgstr "http proxy beállítása (nem kötelező)" msgid "Please wait" msgstr "Kérem várjon" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Kész" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Kapcsolódás" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Nem sikerült hívni" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Elnézést, elértük a egyidejű hívások maximális számát" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "kapcsolatba lépett veled." -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "és automatikus választ kért." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "A hívási jellemzők módosítása..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Kapcsolódva." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Hívás megszakítva" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Nem sikerült várakoztatni a hívást" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Jelenlegi hívás várakoztatásának aktiválása..." @@ -1900,32 +1900,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "Az Ön által megadott SIP proxy cím érvénytelen. \"sip:\"-tal kell kezdődnie, ezt egy hosztnév követi." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "Az Ön által megadott SIP identitás érvénytelen.\nÍgy kéne kinéznie: sip:felhasznalonev@proxytartomany, például sip:aladar@pelda.hu" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Telefonszám-cél keresése..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Nem sikkerült értelmezni a számot." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Nem sikerült belépni ezzel: %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2034,16 +2034,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "Hitelesítési jel: %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2084,3 +2084,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/it.po b/po/it.po index b16050ce1..c22d60aac 100644 --- a/po/it.po +++ b/po/it.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Italian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/it/)\n" "MIME-Version: 1.0\n" @@ -98,15 +98,15 @@ msgstr "Me" msgid "Couldn't find pixmap file: %s" msgstr "Impossibile trovare il file pixmap %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Invio in corso..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Messaggio non inviato" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Copia" @@ -152,7 +152,7 @@ msgstr "Avvia l'assistente audio" msgid "Run self test and exit 0 if succeed" msgstr "Esegui il self test e esci con 0 in caso di successo" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -160,80 +160,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s vorrebbe aggiungerti alla sua lista dei contatti.\nVuoi aggiungerlo/a ai tuoi contatti e pemettergli di conoscere la tua presenza?\nSe rispondi NO questa persona verrà temporaneamente bloccata." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Digitare la password per l'utente %s\nnel dominio %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Errore durante la chiamata" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Chiamata terminata" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Chiamata in arrivo" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Risposta" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Rifiuta" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Chiamata in pausa" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "da %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s chiede di avviare il video. Accetti ?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Collegamento al sito web" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Un videotelefono su internet" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Siamo trasferiti verso %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Non è stata trovata nessuna scheda audio.\nNon sarà possibile effettuare o ricevere chiamate in voce." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Un videotelefono SIP free" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Salve\n" @@ -535,7 +535,7 @@ msgid "%.3f seconds" msgstr "%.3f secondi" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Riagganciare" @@ -1792,52 +1792,52 @@ msgstr "Configurazione del proxy http (opzionale)" msgid "Please wait" msgstr "Prego attendere" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Pronto" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Configurando" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "In connessione" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Impossibile chiamare" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Spiacenti, è stato raggiunto il massimo numero di chiamate simultanee" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "ti sta contattando" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "e ha richiesto la risposta automatica" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Modificando i parametri di chiamata..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Connessione" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Chiamata annullata" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Impossibile sospendere la chiamata" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Sospensione della chiamata in corso..." @@ -1901,32 +1901,32 @@ msgstr "Assente" msgid "Unknown status" msgstr "Stato sconosciuto" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "L'indirizzo sip proxy utilizzato è invalido, deve iniziare con \"sip:\" seguito dall' hostaname." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "L'identità sip utilizza è invalida.\nDovrebbre essere sip:username@proxydomain, esempio: sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Ricerca numero destinazione..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Impossibile risolvere il numero." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "impossibile login come %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Aggiornamento da %s..." @@ -2035,16 +2035,16 @@ msgstr "Servizio non disponibile, nuovo tentativo in corso" msgid "Authentication token is %s" msgstr "Il codice di autenticazione è %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "I parametri della chiamata sono stati modificati con successo: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "I parametri della chiamata sono stati modificati con successo." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2085,3 +2085,7 @@ msgstr "chiamata in uscita" #, c-format msgid "Cannot play %s." msgstr "Impossibile riprodurre %s." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/ja.po b/po/ja.po index 32ec86489..dac47a32a 100644 --- a/po/ja.po +++ b/po/ja.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Japanese (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ja/)\n" "MIME-Version: 1.0\n" @@ -96,15 +96,15 @@ msgstr "自分" msgid "Couldn't find pixmap file: %s" msgstr "pixmapファイルが見つかりません %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "コピー" @@ -150,7 +150,7 @@ msgstr "オーディオアシスタントを実行" msgid "Run self test and exit 0 if succeed" msgstr "セルフテストは0で終了したら成功です" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -158,80 +158,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "相手が自分の連絡先に%sを追加したいそうです。\nあなたが自分の連絡先に相手を追加したらできるようになり相手のステータスも表示されるようになります。\n拒否した場合その相手は一時的にブラックリストに登録されます。" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "パスワードを入力してください %s\nrealm %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "呼出エラー" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "呼出終了" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "着信" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "応答" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "拒否" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "呼び出しの一時停止" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "%s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%sがテレビ電話をしたいそうですが受け入れますか?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "ウェブサイトリンク" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "テレビ電話" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (デフォルト)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "%s に転送しました" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "サウンドカードが検出されていません。\n音声通話の送受信はできません。" -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "無料 SIP ビデオ-電話" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "こんにちは\n" @@ -532,7 +532,7 @@ msgid "%.3f seconds" msgstr "%.3f 秒" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "電話を切る" @@ -1789,52 +1789,52 @@ msgstr "" msgid "Please wait" msgstr "お待ちください" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "準備" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "と自動応答を尋ねる" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "コールパラメーターの変更..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "接続しました。" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "呼び出しを打ち切る" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "呼び出しを一時停止できませんでした" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "現在の通話を一時停止..." @@ -1898,32 +1898,32 @@ msgstr "休暇中" msgid "Unknown status" msgstr "不明なステータス" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2032,16 +2032,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2081,3 +2081,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "%s が再生出来ません。" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/lt.po b/po/lt.po index 8ef4c333d..8a9ead05e 100644 --- a/po/lt.po +++ b/po/lt.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Lithuanian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/lt/)\n" "MIME-Version: 1.0\n" @@ -97,17 +97,17 @@ msgstr "" #: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102 #, c-format msgid "Couldn't find pixmap file: %s" -msgstr "" +msgstr "Nepavyko rasti paveikslo žemėlapio failo: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Siunčiama..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Pranešimas neišsiųstas" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Kopijuoti" @@ -153,7 +153,7 @@ msgstr "Vykdyti garso pagelbiklį" msgid "Run self test and exit 0 if succeed" msgstr "Vykdyti savikontrolę ir išeiti 0, jei pavyks" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -161,80 +161,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s norėtų jus pridėti į savo kontaktų sąrašą.\nAr jūs norėtumėte taip pat pridėti jį/ją į savo kontaktų sąrašą ir leisti jam/jai matyti jūsų prisijungimo būseną?\nJeigu atsakysite ne, šis asmuo bus laikinai pridėtas į juodąjį sąrašą." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Skambučio klaida" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Skambutis užbaigtas" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Įeinantis skambutis" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Atsiliepti" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Atmesti" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Skambutis pristabdytas" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "naudotojo %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s pasiūlė pradėti vaizdą. Jūs sutinkate ?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Svetainės nuoroda" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Internetinis vaizdo telefonas" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Numatytoji)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Šiame kompiuteryje nebuvo aptikta jokių garso plokščių.\nJūs negalėsite siųsti ir priimti garso skambučių." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Nemokamas SIP vaizdo telefonas" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Sveiki\n" @@ -537,7 +537,7 @@ msgid "%.3f seconds" msgstr "%.3f sekundžių" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Padėti ragelį" @@ -983,7 +983,7 @@ msgstr "Kol kas neprieinama" #: ../gtk/ldap.ui.h:8 msgid "Connection" -msgstr "" +msgstr "Ryšys" #: ../gtk/ldap.ui.h:9 msgid "Bind DN" @@ -1794,52 +1794,52 @@ msgstr "" msgid "Please wait" msgstr "Prašome palaukti" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Pasiruošę" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Konfigūruojama" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" -msgstr "Susisiekiama" +msgstr "Susisiekiama su" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Nepavyko skambinti" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "bando su jumis susisiekti" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Modifikuojami skambučio parametrai..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Prisijungta." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Skambutis nutrauktas" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Nepavyko pristabdyti skambučio" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Pristabdomas esamas skambutis..." @@ -1903,32 +1903,32 @@ msgstr "" msgid "Unknown status" msgstr "Nežinoma būsena" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "jūsų įvesta sip tapatybė yra neteisinga.\nJi turėtų atrodyti taip sip:naudotojovardas@įgaliotojoserveriosritis, kaip, pavyzdžiui, sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Nepavyko prisijungti kaip %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2037,16 +2037,16 @@ msgstr "Paslauga neprieinama, bandoma iš naujo" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Nepavyko modifikuoti skambučio parametrų: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Skambučio parametrai buvo sėkmingai modifikuoti." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2056,15 +2056,15 @@ msgstr[2] "Jūs turite %i praleistų skambučių." #: ../coreapi/call_log.c:223 msgid "aborted" -msgstr "" +msgstr "nutrauktas" #: ../coreapi/call_log.c:226 msgid "completed" -msgstr "" +msgstr "užbaigtas" #: ../coreapi/call_log.c:229 msgid "missed" -msgstr "" +msgstr "praleistas" #: ../coreapi/call_log.c:232 msgid "unknown" @@ -2082,9 +2082,13 @@ msgstr "%s ties %s\nNuo: %s\nKam: %s\nBūsena: %s\nTrukmė: %i min. %i sek.\n" #: ../coreapi/call_log.c:235 msgid "Outgoing call" -msgstr "" +msgstr "Išeinantis skambutis" #: ../gtk/videowindow.c:72 #, c-format msgid "Cannot play %s." msgstr "Nepavyksta groti %s." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index 22a2b6cd5..a080f28ff 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/nb_NO/)\n" "MIME-Version: 1.0\n" @@ -97,15 +97,15 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Fant ikke pixmap fli: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -151,7 +151,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -159,80 +159,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Samtale avsluttet" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Svarer" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Avvis" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Peker til nettsted" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Standard)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Vi er overført til %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Klarte ikke å finne noe lydkort på denne datamaskinen.\nDu vil ikke kunne sende eller motta lydsamtaler." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -534,7 +534,7 @@ msgid "%.3f seconds" msgstr "" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "" @@ -1791,52 +1791,52 @@ msgstr "" msgid "Please wait" msgstr "Vennligst vent" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Klar" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Tilknytter" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Kunne ikke ringe" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Beklager, du har nådd maksimalt antall samtidige samtaler" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "Kontakter deg." -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr " og ba om autosvar." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Endrer ringeparametre..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Tilkoblet" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Samtale avbrutt" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Kunne ikke pause samtalen" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Pauser nåværende samtale" @@ -1900,32 +1900,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "SIP proxy adressen du har angitt er ugyldig, den må begynne med \"sip:\" etterfult av vertsnavn." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "SIP adressen du har angitt er feil. Adressen bør se ut som sip: brukernavn@domenenavn, f.eks sip:ola@eksempel.no" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Ser etter telefonnummer for destinasjonen..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Kan ikke tilkoble dette nummeret." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Ikke ikke logge inn som %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2034,16 +2034,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2084,3 +2084,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/nl.po b/po/nl.po index 912039a6e..d6f2d22a9 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Dutch (http://www.transifex.com/belledonne-communications/linphone-gtk/language/nl/)\n" "MIME-Version: 1.0\n" @@ -97,15 +97,15 @@ msgstr "Ik" msgid "Couldn't find pixmap file: %s" msgstr "Het pixmap-bestand %s kon niet worden gevonden" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -151,7 +151,7 @@ msgstr "Doorloop de audio-instelwizard" msgid "Run self test and exit 0 if succeed" msgstr "Draai een zelftest en exit 0 wanneer succesvol" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -159,80 +159,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Vul uw wachtwoord in voor gebruikersnaam %s\nop realm %s" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Oproepfout" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Oproep beëindigd" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Opnemen" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Weigeren" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Oproep gepauzeerd" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "door %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s stelt u voor om video in te schakelen. Wilt u dit accepteren?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Websitelink" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Standaard)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "We zijn overgeschakeld naar %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Er zijn geluidskaarten aangetroffen op deze computer.\nU zult niet in staat zijn om audio-oproepen te ontvangen of versturen." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Een gratis SIP-videotelefoon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -534,7 +534,7 @@ msgid "%.3f seconds" msgstr "%.3f seconden" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Ophangen" @@ -1791,52 +1791,52 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Gereed." -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Verbinden" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Verbonden." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "" @@ -1900,32 +1900,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Zoekt de lokatie van het telefoonnummer..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Kon dit nummer niet vinden." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2034,16 +2034,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2084,3 +2084,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/pl.po b/po/pl.po index 8be1db1af..f7b85227f 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Polish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/pl/)\n" "MIME-Version: 1.0\n" @@ -98,15 +98,15 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -152,7 +152,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -160,80 +160,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -536,7 +536,7 @@ msgid "%.3f seconds" msgstr "" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "" @@ -1793,52 +1793,52 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Połączony" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "" @@ -1902,32 +1902,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2036,16 +2036,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2087,3 +2087,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 81def6a83..840ff80e5 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -96,15 +96,15 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -150,7 +150,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -158,80 +158,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -533,7 +533,7 @@ msgid "%.3f seconds" msgstr "" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "" @@ -1790,52 +1790,52 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "" @@ -1899,32 +1899,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Procurando por telefone de destino..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Não foi possível encontrar este número." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2033,16 +2033,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2083,3 +2083,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/ru.po b/po/ru.po index db4d7a195..c89042ca3 100644 --- a/po/ru.po +++ b/po/ru.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Russian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ru/)\n" "MIME-Version: 1.0\n" @@ -105,15 +105,15 @@ msgstr "Мне" msgid "Couldn't find pixmap file: %s" msgstr "Невозможно найти графический файл: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Отправка..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Сообщение не отправилось" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Копировать" @@ -159,7 +159,7 @@ msgstr "Запустить помощника аудио" msgid "Run self test and exit 0 if succeed" msgstr "Запустить самотест и выйти при успехе со статусом 0" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -167,80 +167,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s хочет добавить Вас в его/её список контактов.\nВы бы добавили его/её в свой список контактов и позволили ему/ей видеть ваш статус присутствия?\nЕсли вы ответите нет, то этот человек будет временно занесён в чёрный список." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Пожалуйста, введите пароль для пользователя %s\n для реалм (рилм) %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Ошибка звонка" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Звонок окончен" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Входящий звонок" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Ответ" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Отклонить" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Звонок приостановлен" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "%s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s предложил запустить видео. Вы принимаете?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Домашняя страница" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Видео интернет телефон" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (по умолчанию)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Мы передали в %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Звуковые карты не были обнаружены на этом компьютере.\nВы не сможете отправлять или получать аудио звонки." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Свободный SIP видео-телефон" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Привет\n" @@ -544,7 +544,7 @@ msgid "%.3f seconds" msgstr "%.3f секунд" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Повесить трубку" @@ -1139,11 +1139,11 @@ msgstr "Показать клавиатуру" #: ../gtk/main.ui.h:8 msgid "Import contacts from vCards" -msgstr "" +msgstr "Импорт контактов из vCards" #: ../gtk/main.ui.h:9 msgid "Export contacts as vCards" -msgstr "" +msgstr "Экспорт контактов как vCards" #: ../gtk/main.ui.h:10 msgid "_Help" @@ -1505,11 +1505,11 @@ msgstr "Медиа-шифрование обязательно" #: ../gtk/parameters.ui.h:77 msgid "Mandatory" -msgstr "" +msgstr "Обязательный" #: ../gtk/parameters.ui.h:78 msgid "Preferred" -msgstr "" +msgstr "Предпочтительный" #: ../gtk/parameters.ui.h:79 msgid "Encryption" @@ -1801,52 +1801,52 @@ msgstr "Конфигурировать http прокси (опциональ msgid "Please wait" msgstr "Пожалуйста, подождите" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Готов" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Конфигурирование" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Соединение" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Невозможно позвонить" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "К сожалению, мы достигли максимального количества одновременных звонков" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "контактирует с вами" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "и спросил автоматический ответ." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Изменение параметров звонка..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Соединён." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Звонок отменён" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Невозможно приостановить звонок" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Приостановка текущего звонка..." @@ -1910,32 +1910,32 @@ msgstr "Отдых" msgid "Unknown status" msgstr "Неизвестный статус" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "Введённый SIP-адрес прокси является недействительным, он должен начинаться с \"sip:имя_хоста\"" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "Неверные параметры для sip идентификации\nДолжно выглядеть как sip:имя_пользователя@домен_прокси, как например, sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Поиск назначения для телефонного номера.." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Не получилось принять решение по этому номеру." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Невозможно зайти как: %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Обновление %s..." @@ -2044,16 +2044,16 @@ msgstr "Сервис недоступен, повтор" msgid "Authentication token is %s" msgstr "Маркер проверки подлинности: %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Параметры звонка не были изменены: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Параметры звонка были успешно изменены." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2096,3 +2096,7 @@ msgstr "Исходящий вызов" #, c-format msgid "Cannot play %s." msgstr "Невозможно воспроизвести %s." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/sr.po b/po/sr.po index 47dddddda..5b81e540d 100644 --- a/po/sr.po +++ b/po/sr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Serbian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/sr/)\n" "MIME-Version: 1.0\n" @@ -99,15 +99,15 @@ msgstr "Ја" msgid "Couldn't find pixmap file: %s" msgstr "Не могу да пронађем датотеку сличице: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Шаљем..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Порука није послата" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Умножи" @@ -153,7 +153,7 @@ msgstr "Покреће помоћника звука" msgid "Run self test and exit 0 if succeed" msgstr "Покреће самоиспробавање и излази 0 ако је успешно" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -161,80 +161,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s жели да вас дода на свој списак контакта.\nДа ли желите да га/је додате на ваш списак контакта и да му/јој омогућите да види ваше стање присуства?\nАко одговорите негативно, ова особа ће тренутно бити стављена на списак забрањених." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Унесите вашу лозинку за корисничко име %s\n на подручју %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Грешка позива" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Позив је завршен" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Долазни позив" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Јави се" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Одбиј" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Позив је заустављен" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "од %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s предлаже да започнете видео. Да ли прихватате ?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Веза веб сајта" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Линфон" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Интернетски видео телефон" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (основно)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Преселили смо се на %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Ниједна звучна картица није откривена на овом рачунару.\nНећете бити у могућности да шаљете или да примате звучне позиве." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Слободан СИП телефон са снимком" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Здраво\n" @@ -451,11 +451,11 @@ msgstr[2] "Нашао сам %i контаката" #: ../gtk/setupwizard.c:219 msgid "Username is already in use!" -msgstr "" +msgstr "Корисничко име је већ у употреби!" #: ../gtk/setupwizard.c:223 msgid "Failed to check username availability. Please try again later." -msgstr "" +msgstr "Нисам успео да проверим доступност корисничког имена. Касније покушајте опет." #: ../gtk/incall_view.c:67 ../gtk/incall_view.c:87 #, c-format @@ -537,7 +537,7 @@ msgid "%.3f seconds" msgstr "%.3f секунде" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Прекини" @@ -1132,11 +1132,11 @@ msgstr "Прикажи тастатуру" #: ../gtk/main.ui.h:8 msgid "Import contacts from vCards" -msgstr "" +msgstr "Увези контакте из вКарти" #: ../gtk/main.ui.h:9 msgid "Export contacts as vCards" -msgstr "" +msgstr "Извези контакте у вКарте" #: ../gtk/main.ui.h:10 msgid "_Help" @@ -1490,7 +1490,7 @@ msgstr "Врста шифровања медија" #: ../gtk/parameters.ui.h:75 msgid "Use Lime for outgoing chat messages" -msgstr "" +msgstr "Користи Лиме за одлазне поруке ћаскања" #: ../gtk/parameters.ui.h:76 msgid "Media encryption is mandatory" @@ -1498,15 +1498,15 @@ msgstr "Шифровање медија је обавезно" #: ../gtk/parameters.ui.h:77 msgid "Mandatory" -msgstr "" +msgstr "Обавезно" #: ../gtk/parameters.ui.h:78 msgid "Preferred" -msgstr "" +msgstr "Жељено" #: ../gtk/parameters.ui.h:79 msgid "Encryption" -msgstr "" +msgstr "Шифровање" #: ../gtk/parameters.ui.h:80 msgid "Network settings" @@ -1794,52 +1794,52 @@ msgstr "Подесите хттп посредника (изборно)" msgid "Please wait" msgstr "Сачекајте мало" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Спреман" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Подешавам" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Ступам у везу" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Не могу да позовем" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Извините, достигли смо највећи број истовремених позива" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "вам се обраћа" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr " и затражени само-одговор." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Мењам параметре позива..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Повезан сам." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Позив је прекинут" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Не могу да зауставим позив" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Заустављам тренутни позив..." @@ -1903,32 +1903,32 @@ msgstr "На одмору" msgid "Unknown status" msgstr "Непознато стање" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "Адреса сип посредника коју сте унели је неисправна, мора почети на „sip:“ за којим следи назив домаћина." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "Сип идентитет који сте унели није исправан.\nТреба да буде у облику „sip:корисник@домен-посредника“, као што је „sip:alice@example.net“" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Тражим одредиште телефонског броја..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Не могу да решим овај број." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Не могу да се пријавим као %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Освежавам на %s..." @@ -2037,16 +2037,16 @@ msgstr "Услуга није доступна, поново покушавам" msgid "Authentication token is %s" msgstr "Симбол потврђивања идентитета је „%s“" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Параметри позива не могу бити измењени: %s." -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Параметри позива су успешно измењени." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2088,3 +2088,7 @@ msgstr "Одлазни позив" #, c-format msgid "Cannot play %s." msgstr "Не могу да пустим „%s“." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/sv.po b/po/sv.po index 3b540ad03..03816e5ce 100644 --- a/po/sv.po +++ b/po/sv.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Swedish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/sv/)\n" "MIME-Version: 1.0\n" @@ -98,15 +98,15 @@ msgstr "Jag" msgid "Couldn't find pixmap file: %s" msgstr "Kunde inte hitta pixmap filen: %s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Skickar..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "Meddelande ej skickat" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Kopiera" @@ -152,7 +152,7 @@ msgstr "Kör ljudassistenten" msgid "Run self test and exit 0 if succeed" msgstr "Kör självtest och avsluta 0 om möjligt" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -160,80 +160,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "%s skulle vilja lägga dig till sin kontaktlista.\nVill du lägga denna person till din kontaktlista och tillåta den att se din närvarostatus?\nOm du svarar nej kommer personen att bli tillfälligt svartlistad." -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "Var vänlig och ange ditt lösenord för användarnam %s\n i område %s:" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Samtalsfel" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Samtalet slut" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Svara" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Avböj" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Samtal pausat" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "av %s" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s föreslår att starta video. Godtar du det?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "Webbsajt" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "En internetvideotelefon" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "Vi är överförda till %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Inget ljudkort har upptäckts på denna dator.\nDu kommer inte att kunna skicka och ta emot samtal." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Hej\n" @@ -535,7 +535,7 @@ msgid "%.3f seconds" msgstr "%.3f sekunder" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Lägg på" @@ -1792,52 +1792,52 @@ msgstr "Konfigurera http-proxy (valfritt)" msgid "Please wait" msgstr "Vänta" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Redo" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Konfigurerar" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Kontaktar" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Beklagar. Vi har nått det maximala antalet samtidiga samtal." -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "kontaktar dig" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "och frågade autosvar." -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Modifierar samtalsparametrar ..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Kopplad" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Samtal avbrutet" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Kunde inte pausa samtalet" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Pausar nuvarande samtal..." @@ -1901,32 +1901,32 @@ msgstr "Ledighet" msgid "Unknown status" msgstr "Okänd status" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "SIP-proxyadressen du angav är inte rätt. Adressen måste starta med \"sip:\" följt av ett värdnamn." -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "SIP-adressen du angav är inte rätt.\nAdressen bör se ut som sip:användarnamn@domän, såsom sip:alice@exempel.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "Leta efter telefonnummerdestinationen ..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "Kan inte nå detta nummer." -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "Kunde inte logga in som %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "Förnyar på %s ..." @@ -2035,16 +2035,16 @@ msgstr "Tjänst ej tillgänglig, försöker igen" msgid "Authentication token is %s" msgstr "Autentiseringstecken är %s" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Samtalsparametrar kunde inte ändras: %s" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "Samtalsparametrar ändrades framgångsrikt." -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2085,3 +2085,7 @@ msgstr "Utgående samtal" #, c-format msgid "Cannot play %s." msgstr "Kan inte spela %s." + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/tr.po b/po/tr.po index 11a18caf5..8fb11ee8f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Emin Tufan , 2016 # faradundamarti , 2015-2016 msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Turkish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/tr/)\n" "MIME-Version: 1.0\n" @@ -62,15 +63,15 @@ msgstr "Reddedildi" #, c-format msgid "%i minute" msgid_plural "%i minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%i dakika" +msgstr[1] "%i dakika" #: ../gtk/calllogs.c:352 #, c-format msgid "%i second" msgid_plural "%i seconds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%i saniye" +msgstr[1] "%i saniye" #: ../gtk/calllogs.c:357 #, c-format @@ -97,15 +98,15 @@ msgstr "Bana" msgid "Couldn't find pixmap file: %s" msgstr "" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "Gönderiliyor..." -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "İleti gitmedi" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "Kopya" @@ -151,7 +152,7 @@ msgstr "Ses yardımcısını çalıştır" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -159,80 +160,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "Çağrı yanlış" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "Çağrı sonlandırıldı" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "Gelen çağrı" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "Yanıt" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "Reddet" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "Çağrı duraklatıldı" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "%s tarafından" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s görüntü başlatmayı önerdi.Kabul ediyor musun?" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "İnternet " -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "Görüntülü internet telefonu" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (Öntanımlı)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "%s ye aktardık" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "Bu bilgisayarda bir ses kartı bulunamadı.\nSesli görüşme yapamazsınız." -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "Özgür bir SİP görüntülü-telefon" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "Merhaba\n" @@ -534,7 +535,7 @@ msgid "%.3f seconds" msgstr "" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "Telefonu kapatma" @@ -1791,52 +1792,52 @@ msgstr "http vekil yapılandır (isteğe bağlı)" msgid "Please wait" msgstr "Lütfen bekleyin" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "Hazır" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "Yapılandırılıyor" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "Bağlanıyor" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "Aranamıyor" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "Çağrı değiştirgeleri değiştiriliyor..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "Bağlandı." -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "Çağrı iptal edildi" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "Çağrı duraklatılamadı" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "Geçerli çağrı duraklatılıyor..." @@ -1900,32 +1901,32 @@ msgstr "Tatil" msgid "Unknown status" msgstr "Bilinmeyen durum" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2034,16 +2035,16 @@ msgstr "Servis kullanımdışı, tekrar deneyin" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2084,3 +2085,7 @@ msgstr "Giden arama" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 1bc9f386f..c52be6fd2 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Chinese (China) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -94,15 +94,15 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "无法打开位图文件:%s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -148,7 +148,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -156,80 +156,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "呼叫结束" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "呼入" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "拒绝" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "网站" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (默认)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "未在此计算机上检测到声卡。\n您无法发送或接收音频呼叫。" -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "免费的 SIP 视频电话" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -530,7 +530,7 @@ msgid "%.3f seconds" msgstr "" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "" @@ -1787,52 +1787,52 @@ msgstr "" msgid "Please wait" msgstr "请稍候" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "就绪" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "联系中" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "正在联系您" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr " 并询问了自动回答。" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "已连接。" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "" @@ -1896,32 +1896,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "您输入的 SIP 代理地址无效,它必须是以“sip:”开头,并紧随一个主机名。" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "您输入的地址无效。\n它应具有“sip:用户名@代理域”的形式,例如 sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "查询电话号码目的地..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "该号码无法解析。" -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "无法登录为 %s" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2030,16 +2030,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2079,3 +2079,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/po/zh_TW.po b/po/zh_TW.po index ce56ee2f4..7c095bb7b 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-15 14:09+0100\n" -"PO-Revision-Date: 2016-03-15 13:09+0000\n" +"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/zh_TW/)\n" "MIME-Version: 1.0\n" @@ -94,15 +94,15 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "找不到 pixmap 檔:%s" -#: ../gtk/chat.c:202 ../gtk/chat.c:260 +#: ../gtk/chat.c:207 ../gtk/chat.c:265 msgid "Sending..." msgstr "" -#: ../gtk/chat.c:219 ../gtk/chat.c:269 +#: ../gtk/chat.c:224 ../gtk/chat.c:274 msgid "Message not sent" msgstr "" -#: ../gtk/chat.c:493 +#: ../gtk/chat.c:498 msgid "Copy" msgstr "" @@ -148,7 +148,7 @@ msgstr "" msgid "Run self test and exit 0 if succeed" msgstr "" -#: ../gtk/main.c:1036 +#: ../gtk/main.c:1058 #, c-format msgid "" "%s would like to add you to his/her contact list.\n" @@ -156,80 +156,80 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1113 +#: ../gtk/main.c:1135 #, c-format msgid "" "Please enter your password for username %s\n" " at realm %s:" msgstr "" -#: ../gtk/main.c:1222 +#: ../gtk/main.c:1244 msgid "Call error" msgstr "" -#: ../gtk/main.c:1225 ../coreapi/linphonecore.c:3938 +#: ../gtk/main.c:1247 ../coreapi/linphonecore.c:3942 msgid "Call ended" msgstr "通話已結束" -#: ../gtk/main.c:1228 ../coreapi/call_log.c:235 +#: ../gtk/main.c:1250 ../coreapi/call_log.c:235 msgid "Incoming call" msgstr "來電" -#: ../gtk/main.c:1231 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 +#: ../gtk/main.c:1253 ../gtk/incall_view.c:579 ../gtk/in_call_frame.ui.h:2 msgid "Answer" msgstr "接聽" -#: ../gtk/main.c:1233 ../gtk/in_call_frame.ui.h:3 +#: ../gtk/main.c:1255 ../gtk/in_call_frame.ui.h:3 msgid "Decline" msgstr "拒接" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 msgid "Call paused" msgstr "" -#: ../gtk/main.c:1240 +#: ../gtk/main.c:1262 #, c-format msgid "by %s" msgstr "" -#: ../gtk/main.c:1314 +#: ../gtk/main.c:1336 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1480 +#: ../gtk/main.c:1502 msgid "Website link" msgstr "網站連結" -#: ../gtk/main.c:1539 ../gtk/waiting.ui.h:1 +#: ../gtk/main.c:1561 ../gtk/waiting.ui.h:1 msgid "Linphone" msgstr "Linphone" -#: ../gtk/main.c:1540 +#: ../gtk/main.c:1562 msgid "A video internet phone" msgstr "" -#: ../gtk/main.c:1602 +#: ../gtk/main.c:1624 #, c-format msgid "%s (Default)" msgstr "%s (預設值)" -#: ../gtk/main.c:1975 ../coreapi/callbacks.c:1080 +#: ../gtk/main.c:1997 ../coreapi/callbacks.c:1080 #, c-format msgid "We are transferred to %s" msgstr "我們被轉接到 %s" -#: ../gtk/main.c:1986 +#: ../gtk/main.c:2008 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "在這臺電腦中偵測不到音效卡。\n您將無法傳送或接收語音電話。" -#: ../gtk/main.c:2151 +#: ../gtk/main.c:2173 msgid "A free SIP video-phone" msgstr "自由的 SIP 視訊電話" -#: ../gtk/main.c:2270 +#: ../gtk/main.c:2292 #, c-format msgid "Hello\n" msgstr "" @@ -530,7 +530,7 @@ msgid "%.3f seconds" msgstr "" #: ../gtk/incall_view.c:453 ../gtk/in_call_frame.ui.h:10 -#: ../gtk/videowindow.c:242 +#: ../gtk/videowindow.c:248 msgid "Hang up" msgstr "" @@ -1787,52 +1787,52 @@ msgstr "" msgid "Please wait" msgstr "請稍候" -#: ../coreapi/linphonecore.c:1590 +#: ../coreapi/linphonecore.c:1594 msgid "Ready" msgstr "準備就緒" -#: ../coreapi/linphonecore.c:2681 +#: ../coreapi/linphonecore.c:2685 msgid "Configuring" msgstr "" #. must be known at that time -#: ../coreapi/linphonecore.c:3080 +#: ../coreapi/linphonecore.c:3084 msgid "Contacting" msgstr "正在連絡" -#: ../coreapi/linphonecore.c:3085 +#: ../coreapi/linphonecore.c:3089 msgid "Could not call" msgstr "無法通話" -#: ../coreapi/linphonecore.c:3224 +#: ../coreapi/linphonecore.c:3228 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "抱歉,我們已達瀏同步通話的最大數目" -#: ../coreapi/linphonecore.c:3384 +#: ../coreapi/linphonecore.c:3388 msgid "is contacting you" msgstr "正在連絡您" -#: ../coreapi/linphonecore.c:3385 +#: ../coreapi/linphonecore.c:3389 msgid " and asked autoanswer." msgstr "並要求自動接聽。" -#: ../coreapi/linphonecore.c:3502 +#: ../coreapi/linphonecore.c:3506 msgid "Modifying call parameters..." msgstr "修改通話參數..." -#: ../coreapi/linphonecore.c:3894 +#: ../coreapi/linphonecore.c:3898 msgid "Connected." msgstr "已連線。" -#: ../coreapi/linphonecore.c:3919 +#: ../coreapi/linphonecore.c:3923 msgid "Call aborted" msgstr "通話已放棄" -#: ../coreapi/linphonecore.c:4121 +#: ../coreapi/linphonecore.c:4125 msgid "Could not pause the call" msgstr "無法暫停通話" -#: ../coreapi/linphonecore.c:4124 +#: ../coreapi/linphonecore.c:4128 msgid "Pausing the current call..." msgstr "暫停目前的通話..." @@ -1896,32 +1896,32 @@ msgstr "" msgid "Unknown status" msgstr "" -#: ../coreapi/proxy.c:336 +#: ../coreapi/proxy.c:339 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "您輸入的 sip 代理位址是無效的,它必須要以「sip:」開頭,後面接主機名稱。" -#: ../coreapi/proxy.c:342 +#: ../coreapi/proxy.c:345 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "您輸入的 sip 身分是無效的。\n它應該看起來像 sip:使用者名稱@代理網域,像是 sip:alice@example.net" -#: ../coreapi/proxy.c:972 +#: ../coreapi/proxy.c:979 msgid "Looking for telephone number destination..." msgstr "尋找電話號碼目的端..." -#: ../coreapi/proxy.c:976 +#: ../coreapi/proxy.c:983 msgid "Could not resolve this number." msgstr "無法解析這個號碼。" -#: ../coreapi/proxy.c:1409 +#: ../coreapi/proxy.c:1437 #, c-format msgid "Could not login as %s" msgstr "無法以 %s 登入" -#: ../coreapi/proxy.c:1494 +#: ../coreapi/proxy.c:1522 #, c-format msgid "Refreshing on %s..." msgstr "" @@ -2030,16 +2030,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1616 +#: ../coreapi/linphonecall.c:1646 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1618 +#: ../coreapi/linphonecall.c:1648 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4527 +#: ../coreapi/linphonecall.c:4619 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2079,3 +2079,7 @@ msgstr "" #, c-format msgid "Cannot play %s." msgstr "" + +#: ../gtk/videowindow.c:252 +msgid "Take screenshot" +msgstr "" diff --git a/tester/audio_bypass_tester.c b/tester/audio_bypass_tester.c index 3f248f4d8..617e1640d 100644 --- a/tester/audio_bypass_tester.c +++ b/tester/audio_bypass_tester.c @@ -60,37 +60,37 @@ static void audio_bypass_snd_read_init(MSFilter *f) { f->data=d; } -int ms_read_wav_header_from_fd(wave_header_t *header,int fd){ +int audio_bypass_read_wav_header_from_fd(wave_header_t *header,int fd){ int count; int skip; int hsize=0; riff_t *riff_chunk=&header->riff_chunk; format_t *format_chunk=&header->format_chunk; data_t *data_chunk=&header->data_chunk; - + unsigned long len=0; - + len = read(fd, (char*)riff_chunk, sizeof(riff_t)) ; if (len != sizeof(riff_t)){ goto not_a_wav; } - + if (0!=strncmp(riff_chunk->riff, "RIFF", 4) || 0!=strncmp(riff_chunk->wave, "WAVE", 4)){ goto not_a_wav; } - - len = read(fd, (char*)format_chunk, sizeof(format_t)) ; + + len = read(fd, (char*)format_chunk, sizeof(format_t)) ; if (len != sizeof(format_t)){ ms_warning("Wrong wav header: cannot read file"); goto not_a_wav; } - + if ((skip=le_uint32(format_chunk->len)-0x10)>0) { lseek(fd,skip,SEEK_CUR); } hsize=sizeof(wave_header_t)-0x10+le_uint32(format_chunk->len); - + count=0; do{ len = read(fd, data_chunk, sizeof(data_t)) ; @@ -119,11 +119,11 @@ int ms_read_wav_header_from_fd(wave_header_t *header,int fd){ static int read_wav_header(PlayerData *d){ wave_header_t header; format_t *format_chunk=&header.format_chunk; - int ret=ms_read_wav_header_from_fd(&header,d->fd); - + int ret=audio_bypass_read_wav_header_from_fd(&header,d->fd); + d->samplesize=le_uint16(format_chunk->blockalign)/d->nchannels; d->hsize=ret; - + #ifdef WORDS_BIGENDIAN if (le_uint16(format_chunk->blockalign)==le_uint16(format_chunk->channel) * 2) d->swap=TRUE; @@ -150,7 +150,7 @@ static void audio_bypass_snd_read_preprocess(MSFilter *f) { } ms_filter_notify_no_arg(f,MS_FILTER_OUTPUT_FMT_CHANGED); ms_message("MSFilePlayer[%p]: %s opened: rate=%i,channel=%i",f,file,d->rate,d->nchannels); - + if (d->state==MSPlayerPaused) d->state=MSPlayerPlaying; return; @@ -298,11 +298,11 @@ MSFilterDesc audio_bypass_snd_read_desc = { }; static void audio_bypass_snd_write_init(MSFilter *f) { - + } static void audio_bypass_snd_write_preprocess(MSFilter *f) { - + } static void audio_bypass_snd_write_process(MSFilter *f) { @@ -311,11 +311,11 @@ static void audio_bypass_snd_write_process(MSFilter *f) { } static void audio_bypass_snd_write_postprocess(MSFilter *f) { - + } static void audio_bypass_snd_write_uninit(MSFilter *f) { - + } static int audio_bypass_snd_write_set_sample_rate(MSFilter *f, void *arg) { // This is to prevent ms2 to put a resampler between this filter and the rtprecv @@ -391,7 +391,7 @@ MSSndCardDesc audio_bypass_snd_card_desc = { NULL, NULL, NULL, - NULL, + NULL, audio_bypass_snd_card_create_reader, audio_bypass_snd_card_create_writer, NULL @@ -432,28 +432,28 @@ static void audio_bypass(void) { LinphoneCore *marie_lc = marie->lc; MSFactory *marie_factory = linphone_core_get_ms_factory(marie_lc); MSSndCardManager *marie_sndcard_manager = ms_factory_get_snd_card_manager(marie_factory); - + LinphoneCoreManager *pauline = linphone_core_manager_new("pauline_rc"); LinphoneCore *pauline_lc = pauline->lc; MSFactory *pauline_factory = linphone_core_get_ms_factory(pauline_lc); MSSndCardManager *pauline_sndcard_manager = ms_factory_get_snd_card_manager(pauline_factory); - + bool_t call_ok; char *hellopath = bc_tester_res("sounds/hello44100.wav"); char *recordpath = bc_tester_file("audiobypass-record.wav"); double similar=1; const double threshold = 0.85; - + lp_config_set_string(marie_lc->config, "sound", "features", "None"); lp_config_set_string(pauline_lc->config, "sound", "features", "None"); - + /*make sure the record file doesn't already exists, otherwise this test will append new samples to it*/ unlink(recordpath); - + // Enable L16 audio codec only_enable_payload(marie_lc, "L16", 44100, 1); only_enable_payload(pauline_lc, "L16", 44100, 1); - + // Add our custom sound card ms_snd_card_manager_register_desc(marie_sndcard_manager, &audio_bypass_snd_card_desc); ms_snd_card_manager_register_desc(pauline_sndcard_manager, &audio_bypass_snd_card_desc); @@ -475,12 +475,12 @@ static void audio_bypass(void) { call_ok = call(marie, pauline); BC_ASSERT_TRUE(call_ok); if (!call_ok) goto end; - + BC_ASSERT_STRING_EQUAL(linphone_call_params_get_used_audio_codec(linphone_call_get_current_params(linphone_core_get_current_call(marie_lc)))->mime_type, "L16"); - + wait_for_until(pauline_lc, marie_lc, NULL, 0, 22000); //hello44100.wav is 22 seconds long end_call(marie, pauline); - + BC_ASSERT_EQUAL(ms_audio_diff(hellopath, recordpath, &similar, &audio_cmp_params, NULL, NULL), 0, int, "%d"); BC_ASSERT_GREATER(similar, threshold, double, "%g"); BC_ASSERT_LOWER(similar, 1.0, double, "%g"); @@ -496,6 +496,6 @@ test_t audio_bypass_tests[] = { TEST_NO_TAG("Audio Bypass", audio_bypass) }; -test_suite_t audio_bypass_suite = { "Audio Bypass", NULL, NULL, +test_suite_t audio_bypass_suite = { "Audio Bypass", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, sizeof(audio_bypass_tests) / sizeof(audio_bypass_tests[0]), audio_bypass_tests }; diff --git a/tester/call_tester.c b/tester/call_tester.c index 09c99a154..4827fe046 100644 --- a/tester/call_tester.c +++ b/tester/call_tester.c @@ -2380,96 +2380,98 @@ static void video_call_without_rtcp(void) { } static void video_call_disable_implicit_AVPF_on_callee(void) { - LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); - LpConfig *callee_lp; - const LinphoneCallParams *params, *params2; + LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); + LpConfig *callee_lp; + const LinphoneCallParams *params, *params2; - callee_lp = linphone_core_get_config(callee->lc); - lp_config_set_int(callee_lp,"rtp","rtcp_fb_implicit_rtcp_fb",0); - - video_call_base_3(caller,callee,TRUE,LinphoneMediaEncryptionNone,TRUE,TRUE); - params = linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)); - BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params), "RTP/AVP"); - params2 =linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)); - BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params2), "RTP/AVP"); - end_call(caller, callee); - linphone_core_manager_destroy(callee); - linphone_core_manager_destroy(caller); + callee_lp = linphone_core_get_config(callee->lc); + lp_config_set_int(callee_lp,"rtp","rtcp_fb_implicit_rtcp_fb",0); + video_call_base_3(caller,callee,TRUE,LinphoneMediaEncryptionNone,TRUE,TRUE); + if(BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(callee->lc))) { + params = linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)); + BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params), "RTP/AVP"); + } + if(BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(caller->lc))) { + params2 =linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)); + BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params2), "RTP/AVP"); + } + end_call(caller, callee); + linphone_core_manager_destroy(callee); + linphone_core_manager_destroy(caller); } static void video_call_disable_implicit_AVPF_on_caller(void) { - LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); - LpConfig *caller_lp; - const LinphoneCallParams *params, *params2; + LinphoneCoreManager *callee = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager *caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); + LpConfig *caller_lp; + const LinphoneCallParams *params, *params2; - caller_lp = linphone_core_get_config(caller->lc); - lp_config_set_int(caller_lp,"rtp","rtcp_fb_implicit_rtcp_fb",0); + caller_lp = linphone_core_get_config(caller->lc); + lp_config_set_int(caller_lp, "rtp", "rtcp_fb_implicit_rtcp_fb", 0); - video_call_base_3(caller,callee,TRUE,LinphoneMediaEncryptionNone,TRUE,TRUE); - params = linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)); - BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params), "RTP/AVP"); - params2 =linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)); - BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params2), "RTP/AVP"); - end_call(caller, callee); - linphone_core_manager_destroy(callee); - linphone_core_manager_destroy(caller); + video_call_base_3(caller, callee, TRUE, LinphoneMediaEncryptionNone, TRUE, TRUE); + params = linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)); + BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params), "RTP/AVP"); + params2 = linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)); + BC_ASSERT_STRING_EQUAL(linphone_call_params_get_rtp_profile(params2), "RTP/AVP"); + end_call(caller, callee); + linphone_core_manager_destroy(callee); + linphone_core_manager_destroy(caller); } -static void video_call_AVPF_to_implicit_AVPF(void) -{ - LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); +static void video_call_AVPF_to_implicit_AVPF(void) { + LinphoneCoreManager *callee = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager *caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); - linphone_core_set_avpf_mode(caller->lc,LinphoneAVPFEnabled); - video_call_base_3(caller,callee,TRUE,LinphoneMediaEncryptionNone,TRUE,TRUE); - end_call(caller,callee); + linphone_core_set_avpf_mode(caller->lc, LinphoneAVPFEnabled); + video_call_base_3(caller, callee, TRUE, LinphoneMediaEncryptionNone, TRUE, TRUE); + end_call(caller, callee); - linphone_core_manager_destroy(callee); - linphone_core_manager_destroy(caller); + linphone_core_manager_destroy(callee); + linphone_core_manager_destroy(caller); } -static void video_call_implicit_AVPF_to_AVPF(void) -{ - LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); +static void video_call_implicit_AVPF_to_AVPF(void) { + LinphoneCoreManager *callee = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager *caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); - linphone_core_set_avpf_mode(callee->lc,LinphoneAVPFEnabled); - video_call_base_3(caller,callee,TRUE,LinphoneMediaEncryptionNone,TRUE,TRUE); - end_call(caller,callee); + linphone_core_set_avpf_mode(callee->lc, LinphoneAVPFEnabled); + video_call_base_3(caller, callee, TRUE, LinphoneMediaEncryptionNone, TRUE, TRUE); + end_call(caller, callee); - linphone_core_manager_destroy(callee); - linphone_core_manager_destroy(caller); + linphone_core_manager_destroy(callee); + linphone_core_manager_destroy(caller); } static void video_call_using_policy_AVPF_implicit_caller_and_callee(void) { - LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); - video_call_base_3(caller,callee,FALSE,LinphoneMediaEncryptionNone,TRUE,TRUE); - end_call(caller, callee); - linphone_core_manager_destroy(callee); - linphone_core_manager_destroy(caller); + LinphoneCoreManager *callee = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager *caller = linphone_core_manager_new(transport_supported(LinphoneTransportTcp) ? "pauline_rc" : "pauline_tcp_rc"); + video_call_base_3(caller, callee, FALSE, LinphoneMediaEncryptionNone, TRUE, TRUE); + end_call(caller, callee); + linphone_core_manager_destroy(callee); + linphone_core_manager_destroy(caller); } -static void video_call_base_avpf(LinphoneCoreManager* caller,LinphoneCoreManager* callee, bool_t using_policy,LinphoneMediaEncryption mode, bool_t callee_video_enabled, bool_t caller_video_enabled) { - linphone_core_set_avpf_mode(caller->lc,LinphoneAVPFEnabled); - linphone_core_set_avpf_mode(callee->lc,LinphoneAVPFEnabled); - video_call_base_3(caller,callee,using_policy,mode,callee_video_enabled,caller_video_enabled); - end_call(caller, callee); + +static void video_call_base_avpf(LinphoneCoreManager *caller, LinphoneCoreManager *callee, bool_t using_policy, LinphoneMediaEncryption mode, bool_t callee_video_enabled, bool_t caller_video_enabled) { + linphone_core_set_avpf_mode(caller->lc, LinphoneAVPFEnabled); + linphone_core_set_avpf_mode(callee->lc, LinphoneAVPFEnabled); + video_call_base_3(caller, callee, using_policy, mode, callee_video_enabled, caller_video_enabled); + end_call(caller, callee); } static void video_call_avpf(void) { - LinphoneCoreManager* callee = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* caller = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc"); + LinphoneCoreManager *callee = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager *caller = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc"); - video_call_base_avpf(caller,callee,FALSE,LinphoneMediaEncryptionNone,TRUE,TRUE); - linphone_core_manager_destroy(callee); - linphone_core_manager_destroy(caller); + video_call_base_avpf(caller, callee, FALSE, LinphoneMediaEncryptionNone, TRUE, TRUE); + linphone_core_manager_destroy(callee); + linphone_core_manager_destroy(caller); } @@ -4286,10 +4288,12 @@ static void call_with_very_early_call_update(void) { BC_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,1)); } + if(linphone_core_get_current_call(pauline->lc)) { + params=linphone_core_create_call_params(pauline->lc,linphone_core_get_current_call(pauline->lc)); + linphone_core_update_call(pauline->lc,linphone_core_get_current_call(pauline->lc),params); + linphone_call_params_destroy(params); + } - params=linphone_core_create_call_params(pauline->lc,linphone_core_get_current_call(pauline->lc)); - linphone_core_update_call(pauline->lc,linphone_core_get_current_call(pauline->lc),params); - linphone_call_params_destroy(params); BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallUpdating,1)); BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&marie->stat.number_of_LinphoneCallUpdatedByRemote,1)); BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,2)); diff --git a/tester/message_tester.c b/tester/message_tester.c index 13bc8c933..aa228b3a1 100644 --- a/tester/message_tester.c +++ b/tester/message_tester.c @@ -1421,14 +1421,19 @@ static void real_time_text(bool_t audio_stream_enabled, bool_t srtp_enabled, boo if (sql_storage) { MSList *marie_messages = linphone_chat_room_get_history(marie_chat_room, 0); MSList *pauline_messages = linphone_chat_room_get_history(pauline_chat_room, 0); + LinphoneChatMessage *marie_msg = NULL; + LinphoneChatMessage *pauline_msg = NULL; if (do_not_store_rtt_messages_in_sql_storage) { BC_ASSERT_EQUAL(ms_list_size(marie_messages), 0, int , "%i"); BC_ASSERT_EQUAL(ms_list_size(pauline_messages), 0, int , "%i"); } else { - LinphoneChatMessage *marie_msg = (LinphoneChatMessage *)marie_messages->data; - LinphoneChatMessage *pauline_msg = (LinphoneChatMessage *)pauline_messages->data; BC_ASSERT_EQUAL(ms_list_size(marie_messages), 1, int , "%i"); BC_ASSERT_EQUAL(ms_list_size(pauline_messages), 1, int , "%i"); + if (!marie_messages || !pauline_messages) { + goto end; + } + marie_msg = (LinphoneChatMessage *)marie_messages->data; + pauline_msg = (LinphoneChatMessage *)pauline_messages->data; BC_ASSERT_STRING_EQUAL(marie_msg->message, message); BC_ASSERT_STRING_EQUAL(pauline_msg->message, message); ms_list_free_with_data(marie_messages, (void (*)(void *))linphone_chat_message_unref); @@ -1448,6 +1453,7 @@ static void real_time_text(bool_t audio_stream_enabled, bool_t srtp_enabled, boo BC_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); } +end: end_call(marie, pauline); } linphone_call_params_destroy(marie_params); diff --git a/tester/multi_call_tester.c b/tester/multi_call_tester.c index d09aa930e..91efb7434 100644 --- a/tester/multi_call_tester.c +++ b/tester/multi_call_tester.c @@ -216,12 +216,16 @@ static void incoming_call_accepted_when_outgoing_call_in_state(LinphoneCallState linphone_core_terminate_all_calls(marie->lc); - + BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,10000)); + BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,2,10000)); BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,10000)); + BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallReleased,1,10000)); + BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallReleased,2,10000)); + BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallReleased,1,10000)); - + linphone_call_params_unref(laure_params); + linphone_call_params_unref(marie_params); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); linphone_core_manager_destroy(laure); @@ -287,6 +291,9 @@ static void simple_conference_base(LinphoneCoreManager* marie, LinphoneCoreManag BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallEnd, initial_marie_stat.number_of_LinphoneCallEnd+2, 10000)); BC_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallEnd, initial_pauline_stat.number_of_LinphoneCallEnd+1, 5000)); BC_ASSERT_TRUE(wait_for_list(lcs, &laure->stat.number_of_LinphoneCallEnd, initial_laure_stat.number_of_LinphoneCallEnd+1, 5000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallReleased, initial_marie_stat.number_of_LinphoneCallReleased+3, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallReleased, initial_pauline_stat.number_of_LinphoneCallReleased+1, 5000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &laure->stat.number_of_LinphoneCallReleased, initial_laure_stat.number_of_LinphoneCallReleased+1, 5000)); goto end; } } @@ -801,27 +808,29 @@ static void eject_from_4_participants_conference(void) { BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(pauline->lc)); BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(laure->lc)); BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(michelle->lc)); - end_call(laure, marie); - end_call(pauline, marie); - end_call(michelle, marie); - - BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&michelle->stat.number_of_LinphoneCallEnd,1,10000)); - - BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallReleased,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallReleased,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallReleased,1,10000)); - BC_ASSERT_TRUE(wait_for_list(lcs,&michelle->stat.number_of_LinphoneCallReleased,1,10000)); - - ms_list_free(lcs); - + + linphone_core_terminate_all_calls(laure->lc); + linphone_core_terminate_all_calls(pauline->lc); + linphone_core_terminate_all_calls(michelle->lc); + + BC_ASSERT_TRUE(wait_for_list(lcs, &laure->stat.number_of_LinphoneCallEnd, 1, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallEnd, 1, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &michelle->stat.number_of_LinphoneCallEnd, 1, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallEnd, 3, 10000)); + + BC_ASSERT_PTR_NULL(linphone_core_get_conference(marie->lc)); + + BC_ASSERT_TRUE(wait_for_list(lcs, &laure->stat.number_of_LinphoneCallReleased, 1, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallReleased, 1, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &michelle->stat.number_of_LinphoneCallReleased, 1, 10000)); + BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallEnd, 3, 10000)); + end: linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); linphone_core_manager_destroy(laure); linphone_core_manager_destroy(michelle); + ms_list_free(lcs); } @@ -923,20 +932,20 @@ test_t multi_call_tests[] = { TEST_NO_TAG("Call waiting indication with privacy", call_waiting_indication_with_privacy), TEST_NO_TAG("Second call rejected if first one in progress", second_call_rejected_if_first_one_in_progress), TEST_NO_TAG("Second call allowed if not using audio", second_call_allowed_if_not_using_audio), - TEST_ONE_TAG("Incoming call accepted when outgoing call in progress", incoming_call_accepted_when_outgoing_call_in_progress, "LeaksMemory"), - TEST_ONE_TAG("Incoming call accepted when outgoing call in outgoing ringing", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing, "LeaksMemory"), - TEST_ONE_TAG("Incoming call accepted when outgoing call in outgoing ringing early media", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing_early_media, "LeaksMemory"), + TEST_NO_TAG("Incoming call accepted when outgoing call in progress", incoming_call_accepted_when_outgoing_call_in_progress), + TEST_NO_TAG("Incoming call accepted when outgoing call in outgoing ringing", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing), + TEST_NO_TAG("Incoming call accepted when outgoing call in outgoing ringing early media", incoming_call_accepted_when_outgoing_call_in_outgoing_ringing_early_media), TEST_NO_TAG("Simple conference", simple_conference), - TEST_TWO_TAGS("Simple conference with ICE", simple_conference_with_ice, "ICE",), - TEST_TWO_TAGS("Simple ZRTP conference with ICE", simple_zrtp_conference_with_ice, "ICE",), + TEST_ONE_TAG("Simple conference with ICE", simple_conference_with_ice, "ICE"), + TEST_ONE_TAG("Simple ZRTP conference with ICE", simple_zrtp_conference_with_ice, "ICE"), TEST_NO_TAG("Eject from 3 participants conference", eject_from_3_participants_local_conference), - TEST_ONE_TAG("Eject from 4 participants conference", eject_from_4_participants_conference, "LeaksMemory"), + TEST_NO_TAG("Eject from 4 participants conference", eject_from_4_participants_conference), TEST_NO_TAG("Simple call transfer", simple_call_transfer), TEST_NO_TAG("Unattended call transfer", unattended_call_transfer), TEST_NO_TAG("Unattended call transfer with error", unattended_call_transfer_with_error), TEST_NO_TAG("Call transfer existing call outgoing call", call_transfer_existing_call_outgoing_call), TEST_NO_TAG("Simple remote conference", simple_remote_conference), - TEST_ONE_TAG("Simple remote conference with shut down focus", simple_remote_conference_shut_down_focus, "LeaksMemory"), + TEST_NO_TAG("Simple remote conference with shut down focus", simple_remote_conference_shut_down_focus), TEST_NO_TAG("Eject from 3 participants in remote conference", eject_from_3_participants_remote_conference), }; diff --git a/tester/presence_tester.c b/tester/presence_tester.c index 750b92921..b14914800 100644 --- a/tester/presence_tester.c +++ b/tester/presence_tester.c @@ -61,7 +61,7 @@ void notify_presence_received(LinphoneCore *lc, LinphoneFriend * lf) { } else if (linphone_presence_model_get_basic_status(counters->last_received_presence) == LinphonePresenceBasicStatusClosed) { counters->number_of_LinphonePresenceBasicStatusClosed++; } else { - ms_error("unexpeted basioc status [%i]",linphone_presence_model_get_basic_status(counters->last_received_presence)); + ms_error("Unexpected basic status [%i]",linphone_presence_model_get_basic_status(counters->last_received_presence)); } for (i=0;ilast_received_presence); i++) { LinphonePresenceActivity *activity = linphone_presence_model_get_nth_activity(counters->last_received_presence, i); @@ -272,6 +272,53 @@ static void simple_subscribe(void) { linphone_core_manager_destroy(pauline); } +static void simple_subscribe_with_early_notify(void) { + + LinphoneCoreManager* marie = presence_linphone_core_manager_new("marie"); + LinphoneCoreManager* pauline = presence_linphone_core_manager_new("pauline"); + LinphoneAddress *marie_identity_addr = linphone_address_clone(marie->identity); + LpConfig *pauline_lp; + + char* pauline_identity=linphone_address_as_string_uri_only(pauline->identity); + char* marie_identity; + + LinphoneFriend* pauline_s_friend; + LinphoneFriend* marie_s_friend=linphone_core_create_friend_with_address(marie->lc,pauline_identity); + + pauline_lp = linphone_core_get_config(pauline->lc); + lp_config_set_int(pauline_lp,"sip","notify_pending_state",1); + + linphone_friend_edit(marie_s_friend); + linphone_friend_enable_subscribes(marie_s_friend,TRUE); + linphone_friend_done(marie_s_friend); + linphone_core_add_friend(marie->lc,marie_s_friend); + ms_free(pauline_identity); + + + /*to simulate pending state.*/ + + linphone_address_set_port(marie_identity_addr,0); + marie_identity=linphone_address_as_string_uri_only(marie_identity_addr); + pauline_s_friend=linphone_core_create_friend_with_address(pauline->lc,marie_identity); + linphone_core_add_friend(pauline->lc,pauline_s_friend); + + ms_free(marie_identity); + + BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&marie->stat.number_of_NotifyPresenceReceived,1)); + BC_ASSERT_EQUAL(linphone_friend_get_subscription_state(marie_s_friend), LinphoneSubscriptionPending,int, "%d"); + + wait_for(marie->lc,pauline->lc,&marie->stat.number_of_LinphonePresenceActivityOnline,marie->stat.number_of_LinphonePresenceActivityOnline+1); + + BC_ASSERT_EQUAL(marie->stat.number_of_NotifyPresenceReceived,2, int, "%d"); + + linphone_friend_unref(marie_s_friend); + linphone_friend_unref(pauline_s_friend); + linphone_address_unref(marie_identity_addr); + linphone_core_manager_destroy(marie); + + linphone_core_manager_destroy(pauline); +} + static void unsubscribe_while_subscribing(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); @@ -399,8 +446,8 @@ static void presence_information(void) { static void subscribe_presence_forked(void){ LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); - LinphoneCoreManager* pauline1 = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc"); - LinphoneCoreManager* pauline2 = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc"); + LinphoneCoreManager* pauline1 = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_tcp_rc" : "pauline_tcp_rc"); + LinphoneCoreManager* pauline2 = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_tcp_rc" : "pauline_tcp_rc"); LinphoneFriend *lf; MSList *lcs = NULL; @@ -417,8 +464,10 @@ static void subscribe_presence_forked(void){ BC_ASSERT_TRUE(wait_for_list(lcs,&pauline1->stat.number_of_NewSubscriptionRequest,1, 10000)); BC_ASSERT_TRUE(wait_for_list(lcs,&pauline2->stat.number_of_NewSubscriptionRequest,1, 2000)); - /*we should get two notifies*/ - BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceActivityOnline,2, 10000)); + + /*we should get only one notify*/ + BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceActivityOnline,1, 10000)); + BC_ASSERT_FALSE(wait_for_list(lcs,&marie->stat.number_of_LinphonePresenceActivityOnline,2, 2000)); /*marie also shall receive two SUBSCRIBEs from the two paulines, but won't be notified to the app since Marie set Pauline as a friend.*/ @@ -501,6 +550,7 @@ static void simple_subscribe_with_friend_from_rc(void) { test_t presence_tests[] = { TEST_ONE_TAG("Simple Subscribe", simple_subscribe,"presence"), + TEST_ONE_TAG("Simple Subscribe with early NOTIFY", simple_subscribe_with_early_notify,"presence"), TEST_NO_TAG("Simple Subscribe with friend from rc", simple_subscribe_with_friend_from_rc), TEST_ONE_TAG("Simple Publish", simple_publish, "LeaksMemory"), TEST_ONE_TAG("Simple Publish with expires", publish_with_expires, "LeaksMemory"), diff --git a/tester/tester.c b/tester/tester.c index e9973d52d..ec253ba2e 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -413,7 +413,6 @@ void linphone_core_manager_uninit(LinphoneCoreManager *mgr) { if (mgr->stat.last_received_info_message) linphone_info_message_destroy(mgr->stat.last_received_info_message); if (mgr->lc){ const char *record_file=linphone_core_get_record_file(mgr->lc); - int unterminated_calls; if (!liblinphone_tester_keep_record_files && record_file){ if ((bc_get_number_of_failures()-mgr->number_of_cunit_error_at_creation)>0) { @@ -422,10 +421,6 @@ void linphone_core_manager_uninit(LinphoneCoreManager *mgr) { unlink(record_file); } } - BC_ASSERT_EQUAL((unterminated_calls=ms_list_size(mgr->lc->calls)), 0, int, "%i"); - if (unterminated_calls != 0) { - ms_error("There are still %d calls pending, please terminates them before invoking linphone_core_manager_destroy().", unterminated_calls); - } linphone_core_destroy(mgr->lc); } if (mgr->identity) { diff --git a/tools/python/unittests/linphonetester.py b/tools/python/unittests/linphonetester.py index dfeeea9d4..751ea88b7 100644 --- a/tools/python/unittests/linphonetester.py +++ b/tools/python/unittests/linphonetester.py @@ -57,7 +57,7 @@ class Account: def __init__(self, id_addr, unique_id): self.created = False self.done = False - self.auth_requested = False + self.registered = False self.identity = id_addr.clone() self.password = linphone.testing.get_random_token(8) self.modified_identity = id_addr.clone() @@ -94,19 +94,23 @@ class AccountManager: @classmethod def account_created_on_server_cb(cls, lc, cfg, state, message): if state == linphone.RegistrationState.Ok: - lc.user_data().created = True + if cfg.error_info.phrase == "Test account created": + lc.user_data().created = True + else: + lc.user_data().registered = True elif state == linphone.RegistrationState.Cleared: lc.user_data().done = True @classmethod def account_created_auth_requested_cb(cls, lc, realm, username, domain): - lc.user_data().auth_requested = True + lc.user_data().created = True def check_account(self, cfg): create_account = False lc = cfg.core id_addr = cfg.identity_address account = self._get_account(id_addr) + original_ai = lc.find_auth_info(None, id_addr.username, id_addr.domain) if account is None: linphonetester_logger.info("[TESTER] No account for {identity} exists, going to create one.".format(identity=id_addr.as_string())) account = Account(id_addr, self.unique_id) @@ -115,6 +119,8 @@ class AccountManager: cfg.identity_address = account.modified_identity if create_account: self._create_account_on_server(account, cfg) + if original_ai is not None: + lc.remove_auth_info(original_ai) ai = linphone.AuthInfo.new(account.modified_identity.username, None, account.password, None, None, account.modified_identity.domain) lc.add_auth_info(ai) return account.modified_identity @@ -133,24 +139,27 @@ class AccountManager: lc = CoreManager.configure_lc_from(vtable, tester_resources_path, None, account) lc.sip_transports = linphone.SipTransports(-1, -1, -1, -1) cfg = lc.create_proxy_config() + tmp_identity.secure = False tmp_identity.password = account.password tmp_identity.set_header("X-Create-Account", "yes") cfg.identity_address = tmp_identity server_addr = linphone.Address.new(refcfg.server_addr) + server_addr.secure = False server_addr.transport = linphone.TransportType.Tcp; server_addr.port = 0 cfg.server_addr = server_addr.as_string() - cfg.expires = 3600 + cfg.expires = 3 * 3600 # Accounts are valid 3 hours lc.add_proxy_config(cfg) - if AccountManager.wait_for_until(lc, None, lambda lc: lc.user_data().auth_requested == True, 10000) != True: + if AccountManager.wait_for_until(lc, None, lambda lc: lc.user_data().created == True, 10000) != True: linphonetester_logger.critical("[TESTER] Account for {identity} could not be created on server.".format(identity=refcfg.identity_address.as_string())) sys.exit(-1) cfg.edit() - cfg.identity_address = account.modified_identity + cfg.identity_address = account.modified_identity.clone() + cfg.identity_address.secure = False cfg.done() ai = linphone.AuthInfo.new(account.modified_identity.username, None, account.password, None, None, account.modified_identity.domain) lc.add_auth_info(ai) - if AccountManager.wait_for_until(lc, None, lambda lc: lc.user_data().created == True, 3000) != True: + if AccountManager.wait_for_until(lc, None, lambda lc: lc.user_data().registered == True, 3000) != True: linphonetester_logger.critical("[TESTER] Account for {identity} is not working on server.".format(identity=refcfg.identity_address.as_string())) sys.exit(-1) lc.remove_proxy_config(cfg) @@ -215,8 +224,11 @@ class CoreManagerStats: self.number_of_IframeDecoded = 0 - self.number_of_NewSubscriptionRequest =0 + self.number_of_NewSubscriptionRequest = 0 self.number_of_NotifyReceived = 0 + self.number_of_NotifyPresenceReceived = 0 + self.number_of_LinphonePresenceBasicStatusOpen = 0 + self.number_of_LinphonePresenceBasicStatusClosed = 0 self.number_of_LinphonePresenceActivityOffline = 0 self.number_of_LinphonePresenceActivityOnline = 0 self.number_of_LinphonePresenceActivityAppointment = 0 @@ -483,74 +495,81 @@ class CoreManager: linphonetester_logger.info("[TESTER] New subscription request: from [{from_str}], url [{url}]".format( from_str=lf.address.as_string(), url=url)) manager.stats.number_of_NewSubscriptionRequest += 1 - lc.add_friend(lf) # Accept subscription + lc.default_friend_list.add_friend(lf) # Accept subscription @classmethod def notify_presence_received(cls, lc, lf): manager = lc.user_data() linphonetester_logger.info("[TESTER] New notify request: from [{from_str}]".format( from_str=lf.address.as_string())) - manager.stats.number_of_NotifyReceived += 1 + manager.stats.number_of_NotifyPresenceReceived += 1 manager.stats.last_received_presence = lf.presence_model - acttype = manager.stats.last_received_presence.activity.type - if acttype == linphone.PresenceActivityType.Offline: - manager.stats.number_of_LinphonePresenceActivityOffline += 1 - elif acttype == linphone.PresenceActivityType.Online: - manager.stats.number_of_LinphonePresenceActivityOnline += 1 - elif acttype == linphone.PresenceActivityType.Appointment: - manager.stats.number_of_LinphonePresenceActivityAppointment += 1 - elif acttype == linphone.PresenceActivityType.Away: - manager.stats.number_of_LinphonePresenceActivityAway += 1 - elif acttype == linphone.PresenceActivityType.Breakfast: - manager.stats.number_of_LinphonePresenceActivityBreakfast += 1 - elif acttype == linphone.PresenceActivityType.Busy: - manager.stats.number_of_LinphonePresenceActivityBusy += 1 - elif acttype == linphone.PresenceActivityType.Dinner: - manager.stats.number_of_LinphonePresenceActivityDinner += 1 - elif acttype == linphone.PresenceActivityType.Holiday: - manager.stats.number_of_LinphonePresenceActivityHoliday += 1 - elif acttype == linphone.PresenceActivityType.InTransit: - manager.stats.number_of_LinphonePresenceActivityInTransit += 1 - elif acttype == linphone.PresenceActivityType.LookingForWork: - manager.stats.number_of_LinphonePresenceActivityLookingForWork += 1 - elif acttype == linphone.PresenceActivityType.Lunch: - manager.stats.number_of_LinphonePresenceActivityLunch += 1 - elif acttype == linphone.PresenceActivityType.Meal: - manager.stats.number_of_LinphonePresenceActivityMeal += 1 - elif acttype == linphone.PresenceActivityType.Meeting: - manager.stats.number_of_LinphonePresenceActivityMeeting += 1 - elif acttype == linphone.PresenceActivityType.OnThePhone: - manager.stats.number_of_LinphonePresenceActivityOnThePhone += 1 - elif acttype == linphone.PresenceActivityType.Other: - manager.stats.number_of_LinphonePresenceActivityOther += 1 - elif acttype == linphone.PresenceActivityType.Performance: - manager.stats.number_of_LinphonePresenceActivityPerformance += 1 - elif acttype == linphone.PresenceActivityType.PermanentAbsence: - manager.stats.number_of_LinphonePresenceActivityPermanentAbsence += 1 - elif acttype == linphone.PresenceActivityType.Playing: - manager.stats.number_of_LinphonePresenceActivityPlaying += 1 - elif acttype == linphone.PresenceActivityType.Presentation: - manager.stats.number_of_LinphonePresenceActivityPresentation += 1 - elif acttype == linphone.PresenceActivityType.Shopping: - manager.stats.number_of_LinphonePresenceActivityShopping += 1 - elif acttype == linphone.PresenceActivityType.Sleeping: - manager.stats.number_of_LinphonePresenceActivitySleeping += 1 - elif acttype == linphone.PresenceActivityType.Spectator: - manager.stats.number_of_LinphonePresenceActivitySpectator += 1 - elif acttype == linphone.PresenceActivityType.Steering: - manager.stats.number_of_LinphonePresenceActivitySteering += 1 - elif acttype == linphone.PresenceActivityType.Travel: - manager.stats.number_of_LinphonePresenceActivityTravel += 1 - elif acttype == linphone.PresenceActivityType.TV: - manager.stats.number_of_LinphonePresenceActivityTV += 1 - elif acttype == linphone.PresenceActivityType.Unknown: - manager.stats.number_of_LinphonePresenceActivityUnknown += 1 - elif acttype == linphone.PresenceActivityType.Vacation: - manager.stats.number_of_LinphonePresenceActivityVacation += 1 - elif acttype == linphone.PresenceActivityType.Working: - manager.stats.number_of_LinphonePresenceActivityWorking += 1 - elif acttype == linphone.PresenceActivityType.Worship: - manager.stats.number_of_LinphonePresenceActivityWorship += 1 + if manager.stats.last_received_presence.basic_status == linphone.PresenceBasicStatus.Open: + manager.stats.number_of_LinphonePresenceBasicStatusOpen += 1 + elif manager.stats.last_received_presence.basic_status == linphone.PresenceBasicStatus.Closed: + manager.stats.number_of_LinphonePresenceBasicStatusClosed += 1 + else: + linphonetester_logger.error("[TESTER] Unexpected basic status {status}".format(status=manager.status.last_received_presence.basic_status)) + for i in range(0, manager.stats.last_received_presence.nb_activities): + acttype = manager.stats.last_received_presence.get_nth_activity(i).type + if acttype == linphone.PresenceActivityType.Offline: + manager.stats.number_of_LinphonePresenceActivityOffline += 1 + elif acttype == linphone.PresenceActivityType.Online: + manager.stats.number_of_LinphonePresenceActivityOnline += 1 + elif acttype == linphone.PresenceActivityType.Appointment: + manager.stats.number_of_LinphonePresenceActivityAppointment += 1 + elif acttype == linphone.PresenceActivityType.Away: + manager.stats.number_of_LinphonePresenceActivityAway += 1 + elif acttype == linphone.PresenceActivityType.Breakfast: + manager.stats.number_of_LinphonePresenceActivityBreakfast += 1 + elif acttype == linphone.PresenceActivityType.Busy: + manager.stats.number_of_LinphonePresenceActivityBusy += 1 + elif acttype == linphone.PresenceActivityType.Dinner: + manager.stats.number_of_LinphonePresenceActivityDinner += 1 + elif acttype == linphone.PresenceActivityType.Holiday: + manager.stats.number_of_LinphonePresenceActivityHoliday += 1 + elif acttype == linphone.PresenceActivityType.InTransit: + manager.stats.number_of_LinphonePresenceActivityInTransit += 1 + elif acttype == linphone.PresenceActivityType.LookingForWork: + manager.stats.number_of_LinphonePresenceActivityLookingForWork += 1 + elif acttype == linphone.PresenceActivityType.Lunch: + manager.stats.number_of_LinphonePresenceActivityLunch += 1 + elif acttype == linphone.PresenceActivityType.Meal: + manager.stats.number_of_LinphonePresenceActivityMeal += 1 + elif acttype == linphone.PresenceActivityType.Meeting: + manager.stats.number_of_LinphonePresenceActivityMeeting += 1 + elif acttype == linphone.PresenceActivityType.OnThePhone: + manager.stats.number_of_LinphonePresenceActivityOnThePhone += 1 + elif acttype == linphone.PresenceActivityType.Other: + manager.stats.number_of_LinphonePresenceActivityOther += 1 + elif acttype == linphone.PresenceActivityType.Performance: + manager.stats.number_of_LinphonePresenceActivityPerformance += 1 + elif acttype == linphone.PresenceActivityType.PermanentAbsence: + manager.stats.number_of_LinphonePresenceActivityPermanentAbsence += 1 + elif acttype == linphone.PresenceActivityType.Playing: + manager.stats.number_of_LinphonePresenceActivityPlaying += 1 + elif acttype == linphone.PresenceActivityType.Presentation: + manager.stats.number_of_LinphonePresenceActivityPresentation += 1 + elif acttype == linphone.PresenceActivityType.Shopping: + manager.stats.number_of_LinphonePresenceActivityShopping += 1 + elif acttype == linphone.PresenceActivityType.Sleeping: + manager.stats.number_of_LinphonePresenceActivitySleeping += 1 + elif acttype == linphone.PresenceActivityType.Spectator: + manager.stats.number_of_LinphonePresenceActivitySpectator += 1 + elif acttype == linphone.PresenceActivityType.Steering: + manager.stats.number_of_LinphonePresenceActivitySteering += 1 + elif acttype == linphone.PresenceActivityType.Travel: + manager.stats.number_of_LinphonePresenceActivityTravel += 1 + elif acttype == linphone.PresenceActivityType.TV: + manager.stats.number_of_LinphonePresenceActivityTV += 1 + elif acttype == linphone.PresenceActivityType.Unknown: + manager.stats.number_of_LinphonePresenceActivityUnknown += 1 + elif acttype == linphone.PresenceActivityType.Vacation: + manager.stats.number_of_LinphonePresenceActivityVacation += 1 + elif acttype == linphone.PresenceActivityType.Working: + manager.stats.number_of_LinphonePresenceActivityWorking += 1 + elif acttype == linphone.PresenceActivityType.Worship: + manager.stats.number_of_LinphonePresenceActivityWorship += 1 def __init__(self, rc_file = None, check_for_proxies = True, vtable = {}): if not vtable.has_key('registration_state_changed'): @@ -588,17 +607,27 @@ class CoreManager: rc_path = os.path.join('rcfiles', rc_file) self.lc = CoreManager.configure_lc_from(vtable, tester_resources_path, rc_path, self) self.check_accounts() - if check_for_proxies and rc_file is not None: + + self.lc.play_file = os.path.join(tester_resources_path, 'sounds', 'hello8000.wav') + self.lc.user_certificates_path = os.getcwd() + + if check_for_proxies: proxy_count = len(self.lc.proxy_config_list) else: proxy_count = 0 + self.lc.network_reachable = False if proxy_count: - CoreManager.wait_for_until(self, None, lambda manager: manager.stats.number_of_LinphoneRegistrationOk == proxy_count, 5000 * proxy_count) + nb_seconds = 20 + success = CoreManager.wait_for_until(self, None, lambda manager: manager.stats.number_of_LinphoneRegistrationOk == proxy_count, nb_seconds * 1000 * proxy_count) + if not success: + linphonetester_logger.info("[TESTER] Did not register after {nb_seconds} for {proxy_count} proxies".format(nb_seconds=nb_seconds, proxy_count=proxy_count)) assert_equals(self.stats.number_of_LinphoneRegistrationOk, proxy_count) self.enable_audio_codec("PCMU", 8000) if self.lc.default_proxy_config is not None: self.lc.default_proxy_config.identity_address.clean() + if not check_for_proxies: + self.lc.network_reachable = True def enable_audio_codec(self, mime, rate): codecs = self.lc.audio_codecs diff --git a/tools/python/unittests/test_presence.py b/tools/python/unittests/test_presence.py index 539452ebe..27f462011 100644 --- a/tools/python/unittests/test_presence.py +++ b/tools/python/unittests/test_presence.py @@ -28,7 +28,7 @@ class TestPresence: result = CoreManager.wait_for(caller_mgr, callee_mgr, lambda caller_mgr, callee_mgr: caller_mgr.stats.number_of_LinphonePresenceActivityOnline == initial_caller_stats.number_of_LinphonePresenceActivityOnline + 1) assert_equals(callee_mgr.stats.number_of_NewSubscriptionRequest, initial_callee_stats.number_of_NewSubscriptionRequest + 1) - assert_equals(caller_mgr.stats.number_of_NotifyReceived, initial_caller_stats.number_of_NotifyReceived + 1) + assert_equals(caller_mgr.stats.number_of_NotifyPresenceReceived, initial_caller_stats.number_of_NotifyPresenceReceived + 1) return result def test_simple_subscribe(self): diff --git a/tools/python/unittests/test_register.py b/tools/python/unittests/test_register.py index a136c8a79..83809fb25 100644 --- a/tools/python/unittests/test_register.py +++ b/tools/python/unittests/test_register.py @@ -173,7 +173,7 @@ class TestRegister: assert_equals(cm.stats.number_of_auth_info_requested, 1) def test_multiple_accounts(self): - CoreManager('multi_account_rc', True) + CoreManager('multi_account_rc', False) def test_transport_change(self): cm = CoreManager('multi_account_rc', True)