SIPE (SIP Exchange Protocol)
SIPE has new site
Hi everybody. I know much people are interested on this project called SIPE. For that, I’m releasing a new site on SourceForge http://sipe.sf.net.
Pidgin Plug-in SIPE (Sip Exchange Protocol)
Pidgin is a multiprotocol instant messenger for Linux (and other plataforms). SIP is another popular protocol used for VoIP, and it also has an IM (Instant Messenger) analog in the form of SIP/SIMPLE. The SIP/SIMPLE is an open protocol with a documented specification. The Microsoft Live Communication Server (LCS) has support very similar the Sip/Simple protocol (indeed is based 100% on it), but it has non standard especifications classical for a MSN product, is an extend version SIP.
For that, I implemented a Pidgin Plug-in for LCS called SIPE (SIP Exchange). I taked the SIP/Simple implementation developed by Thomas Butter for Pidgin. Thomas had success with the NTLM authentication problem for LCS (at least one part), but I found the LCS SIP especification is very incompatible. The original SIP/Simpe code needed a lot changes (broken the original especification). Then I decided to add that support building a Pidgin plug-in called SIPE (SIP Exchange).
Why the LCS? Because this Communications server is extensively used on enterprise environments (like intranets, coorporative subnets, etc) like Novell-wise or Lotus-SameTime. But the most important reason: I need this support for my job, because I (always) use Linux
Do you want to know more about SIP/Simple protocol?, please read this PDF document from Hannu-Pekka Rajaniemi and Kliment Yanev. On page ten they talked about SIP/Simple -LCS 2005 problem.
Comming soon my project will be hosted in SourceForge
Version 1.3.2
My plugin today is functional and works.
It can do this:
- Authentication type NTLM (full implement)
- Retrieve the contacts from the server (with groups)
- Add/Delete/Move contacts
- Presense in both sides (full implement) with correct status
- Send/receive messages (text/plain) to other users.
- Search contacs in the server
- Support for TCP/TLS/UDP protocols
- Support for LCS 2003/2005 and OCS 2007
Remember, you need a LCS (Live Communication Server) and one account (the LCS administrator should give you), my plugin doesn”t create account, just connect to the server.
SIPE on action
I got some screenshots for you check how my plug-in works





Glad to see someone finally got this working!
I’m close – gaim2 beta5, got your plugin installed, but it keeps segfaulting right when it goes to connect.
Any chance I can get some troubleshooting tips?
Uhm. Bad news. But I should tell you this code is very experimental. I’m working on this. But I can’t prove all features and configurations posibles. Please, all people need to send me the output from (gaim -d > output.log) command. And if you can, the gdb output.
Regards.
Is there any chance to have it running on windows?
Yup can you make for windows?
Yes, i have to use a windows interface at work and i would love to keep my gaim/pidgin for everything. this would be worth donating for. Thanks
I tried your plugin but some how I am not able to connect using it… it always keep trying to connect… is there any way i can debug this?
It was segfaulting for me too, in the sipe_network_get_local_system_ip(void)– I modified the code to return my hardcoded ip and I was able to work around it. It still didn’t work with our exchange server. I wasn’t able to message anyone and I wasn’t getting any presence information
Thanks for a very good plugin for GAIM (Pidgin). I got your plugin to work with gaim 2beta5 (on centos5). But am facing few problems,
1. Am not able to see the contacts as online (even though they are online).
2. My status is shown as off-line even if I select the status as available.
3. It takes a long time to receive the message.
Could you please help me on this?
i have a question, i am running ubuntu in my work env and every time i go to compile this i get :
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
I am not that great at linux but i am trying. i cant figure out how to get around that.
Any help would be amazing, thank you
Hi, I am willing to test windows port, we need this plugin to work with TLS, as our LCS server supports nonVPN environment if connected via TLS (is that port 5061?)
btw are you in contact with official gaim/pidgin guys?
they have new project for Google sommer of code to make SIP/SIMPLE plugin wok with LCS, and they also track this as issue to be fixed for version 2.0.1, maybe you could give them helping hand to make this work for all of us
anyway thanks for bringing the gaim/pidgin closer to replacing the standard MS communicator client (which really sux a lot…)
This got referenced from: http://developer.pidgin.im/ticket/48
For 2.0.0, we’ve gone with this concept of splitting out the common code into a small library and then creating two prpls. If there is significantly different code for LCS, I’d recommend that route. If it’s just a little bit, I’d recommend keeping one prpl.
If you were to develop this as a patch against Pidgin, we might be willing to merge it upstream. Also, either way, you’d probably see some great advantages from developing this on a branch using our Monotone repository. If you want some help with that, I’m available via IM and my contact information is at: http://developer.pidgin.im/wiki/rlaager
I have installed and configured as described, however now gaim just sets there says “Connecting”, but it never does. Any ideas?
Hi Jeff.
I need you send me the debug file.
Please, you run pidgin so:
pidgin -d > debug.log
After you send me the debug.log file.
Regards.
Fixxxer
I’m experiencing the same as Jeff (using on Ubuntu).
I’m getting the same segfault upon connect.
Running under gdb shows:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1221375792 (LWP 8972)]
0xb74d6b68 in strcmp () from /lib/libc.so.6
A backtrace shows:
(gdb) backtrace
#0 0xb74d6b68 in strcmp () from /lib/libc.so.6
#1 0xb6e82540 in sipe_add_lcs_contacts (sip=0×841af58, msg=0×8423540,
tc=0×8320ee0) at sipe.c:874
#2 0xb6e807bd in process_input_message (sip=0×841af58, msg=0×8423540)
at sipe.c:1408
#3 0xb6e81380 in sipe_input_cb (data=0×841a188, source=16,
cond=PURPLE_INPUT_READ) at sipe.c:1463
So when it processes the contacts list, it seems to overflow a buffer or something (I’m not a C coder, so I’m not sure if I’m right there).
This was on Arch Linux, with gcc version 4.2.1 20070704 (prerelease)
The last few lines of the output from pidgin -d before the crash show:
(17:44:28) sipe: name_group->General
(17:44:28) sipe: id->1
(17:44:28) sipe: id->General
(17:44:28) sipe: URI->person1@internal.ourdomain,Groups->1
(17:44:28) sipe: Groups->parts[i] 1
(17:44:28) sipe: Found Groups->gr[i].id(1),gr[i].name_group (General)
(17:44:28) sipe: Groups->parts[i]
I might see if I can fix this myself, but as I said, I’m no C/C++ coder… perhaps the info above will give the author or someone else a chance to sort it. (I did email this (with a full crashlog) to the author previously.
Looks like it’s nearly there
Hi! im using fedora 7…. i compile it succesfully but it doens connect. The LCS server use port 5061
do u know why?
[hans@ramona ~]$ uname -a
Linux ramona.eds 2.6.22.4-65.fc7 #1 SMP Tue Aug 21 22:36:56 EDT 2007 i686 i686 i386 GNU/Linux
[hans@ramona ~]$ rpm -qa|grep pidgin
pidgin-2.1.0-2.fc7
pidgin-devel-2.1.0-2.fc7
[hans@ramona ~]$ rpm -qa|grep libpurple
libpurple-devel-2.1.0-2.fc7
libpurple-2.1.0-2.fc7
When the LCS uses the port 5061 is because was configurated with TLS/SSL support. I’m probing in the development version that support.
Please, you follow this pidgin ticket, to read the last messages:
http://developer.pidgin.im/ticket/48
Regards.
Hey fixxxer:
This looks quite promising. I have installed your plugin and it seems to work, but all my buddy list shows as “offline”, and I can’t send or receive messages. Are you still supporting this plugin?
thanks
Sean
I also am interested if this plugin is still in active development. Will this be incorporated into the pidgin code? What is the status of the TLS/SSL support?
Thanks,
Ryan
I’m working with the sofia-sip project to update my plugin. The sofia-sip has support for TLS support and others features. I hope to have good results soon …
Do you have any beta code for sofia-sip ? I’d be willing to help you debug it, if it remotely works.
hey fixxxre great work. I am getting stuck and I am getting wrong password errors.
the trouble is our ecs server is ecs.corp.ds.mycompany.com and thats what the office communicator is connecting to .
and my email id is myname.mysurname@anothername.com . I am quite confused as to which way to configure this. I set the username to myname.mysurname and in the server i put in ecs.corp.ds.mycompany.com but it keeps saying wrong password.
cud u help?
thanks,
abdul
========
(14:57:03) sipe: in process response response: 404
(14:57:03) sipe: msg->response(404),msg->method(REGISTER)
(14:57:03) sipe: RE-REGISTER
(14:57:03) sipe: in process register response response: 404
(14:57:06) util: Writing file accounts.xml to directory /home/xxxxxxxxxxx/.purple
(14:57:06) util: Writing file /home/xxxxxxxxx/.purple/accounts.xml
(14:57:06) util: Writing file blist.xml to directory /home/xxxxxxx/.purple
(14:57:06) util: Writing file /home/xxxxx/.purple/blist.xml
(14:58:00) sipe: sipe_input_cb: read error
============
This is till where i manage to get to. in the debug. any suggestions?
I had the same error. I got it to connect but it still does not work. I put my windows domain name in Screen name.
brad.smith
server: I had to put my domain(i.e. mydomain.net)
Under advanced:
port: 5060
check use proxy.
proxy: the ip of Office communicator server
auth_user: me
domain: mydomain.net
hope that helps you. Do not know if it is even correct but it does connect. I only see one person though. To them I am away. I cant send any messages either.
I have the same trouble as Brad, but I also have wireshark traces- the proxy I’ve defined (to get my userid@appropriatedomain.com, which is NOT the internal e-mail address!) works to the extent that I get a SIP connection and authorized, but as soon as the client tries the “SUBSCRIBE” method, I get ” proxy authentication required…”
And the client, though it looks connected, isn’t.
I think your plugin is great. I use a product called Reuters Messaging. I managed to connect, and download my users and groups. When i send a messages it goes through every time, but when some sends a message to me. I always see the initial “typing”, but only sometimes do i see the messages come actually in. Looking at Debug is see “SIP/2.0 501 Not Implemented” any ideas. I can send some debug output for you to see.
Hi Robert,
Reuters Messaging is very well supported since approximately April 2009.
Now it is even support multi-party chat.
Please comment on SIPE sourceforge’s project forums if you have any thoughts/issues.
Regards,
pier11
very intresting
Hi guys. Any progress on the TLS support for the sipe project?.
Best Regards.
The TLS support was incorpored along time ago.
Please go to the official site http://sipe.sf.net
Hi! I was surfing and found your blog post… nice! I love your blog.
Cheers! Sandra. R.
I love your site.
Love design!!! I just came across your blog and wanted to say that I’ve really enjoyed browsing your blog posts. Sign: ndsam
had recently herpes virus found in my blood. what I haveto do??? I’m in panic…
Our neighbors throing the perfection loose of the fridge! They ve bought pork recently and the holder said that it was from mexico! Should we not tie up on the nosebag pork now?