2
/* Ekiga -- A VoIP and Video-Conferencing application
3
* Copyright (C) 2000-2009 Damien Sandras <dsandras@seconix.com>
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20
* Ekiga is licensed under the GPL license and as a special exception,
21
* you have permission to link or otherwise combine this program with the
22
* programs OPAL, OpenH323 and PWLIB, and distribute the combination,
23
* without applying the requirements of the GNU GPL to the OPAL, OpenH323
24
* and PWLIB programs, as long as you do follow the requirements of the
25
* GNU GPL for all the rest of the software thus combined.
30
* sip-dialect.cpp - description
31
* --------------------------------
32
* begin : written in july 2008 by Julien Puydt
33
* copyright : (C) 2008 by Julien Puydt
34
* description : Implementation of the SIP dialect
40
#include "sip-dialect.h"
42
SIP::Dialect::Dialect (Ekiga::ServiceCore& core_,
43
sigc::slot2<bool, std::string, std::string> sender_)
44
: core(core_), sender(sender_)
48
SIP::Dialect::~Dialect ()
53
SIP::Dialect::push_message (const std::string uri,
54
const std::string name,
55
const std::string msg)
57
gmref_ptr<SimpleChat> chat;
59
chat = open_chat_with (uri, name, false);
61
chat->receive_message (msg);
65
SIP::Dialect::push_notice (const std::string uri,
66
const std::string name,
67
const std::string msg)
69
gmref_ptr<SimpleChat> chat;
71
chat = open_chat_with (uri, name, false);
73
chat->receive_notice (msg);
77
SIP::Dialect::populate_menu (Ekiga::MenuBuilder& /*builder*/)
83
SIP::Dialect::start_chat_with (std::string uri,
86
(void)open_chat_with (uri, name, true);
89
gmref_ptr<SIP::SimpleChat>
90
SIP::Dialect::open_chat_with (std::string uri,
94
gmref_ptr<SimpleChat> result;
96
for (simple_iterator iter = simple_begin ();
97
iter != simple_end ();
99
if ((*iter)->get_uri () == uri)
104
result = gmref_ptr<SimpleChat> (new SimpleChat (core, name, uri, sigc::bind<0>(sender, uri)));
105
add_simple_chat (result);
109
result->user_requested.emit ();