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

SIPE configure basic

SIPE configure advanced (domain and user-windows are the key)

Contacts online

All contacts

RSS feed

34 Comments »

Comment by Jason
2007-04-09 08:36:21

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?

 
Comment by Anibal
2007-04-15 20:56:29

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.

 
Comment by Clemens Riccabona
2007-04-20 02:16:01

Is there any chance to have it running on windows?

 
Comment by sarang
2007-05-04 06:22:47

Yup can you make for windows?

 
Comment by Tweek
2007-05-04 16:59:08

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

 
Comment by prince
2007-05-07 09:06:01

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?

 
Comment by Tom
2007-05-09 17:50:45

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

 
Comment by Vinoda Kumar
2007-05-10 14:27:29

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?

 
Comment by darbs
2007-05-11 19:27:11

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

 
Comment by Miro Skriputa
2007-05-14 18:35:19

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…)

 
Comment by Richard Laager
2007-05-15 22:29:44

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

 
Comment by Jeff Rash
2007-06-28 04:07:06

I have installed and configured as described, however now gaim just sets there says “Connecting”, but it never does. Any ideas?

 
Comment by avelar
2007-07-08 23:08:50

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

 
Comment by zerohalo
2007-08-09 07:05:18

I’m experiencing the same as Jeff (using on Ubuntu).

 
Comment by David Precious
2007-08-15 15:08:16

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 :)

 
Comment by hans
2007-08-28 20:59:00

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

 
Comment by avelar
2007-08-29 05:51:00

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.

 
Comment by Sean
2008-01-09 04:51:37

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

 
Comment by Ryan
2008-01-30 20:04:24

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

Comment by avelar
2008-02-08 08:40:18

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 …

 
 
Comment by nofear
2008-02-16 00:06:24

Do you have any beta code for sofia-sip ? I’d be willing to help you debug it, if it remotely works.

 
Comment by glam
2008-02-29 07:11:32

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

 
Comment by glam
2008-02-29 08:59:37

========
(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?

Comment by brad smith
2008-04-15 19:28:45

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.

Comment by Jeff Sumner
2008-05-16 17:54:25

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.

(Comments wont nest below this level)
 
 
 
Comment by Robert Hau
2009-03-13 21:59:22

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.

Comment by pier11
2009-08-21 11:14:04

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

 
 
Comment by Gobsaidoagoto
2009-03-20 15:50:53

very intresting

 
Comment by Marcelo
2009-07-10 01:49:07

Hi guys. Any progress on the TLS support for the sipe project?.
Best Regards.

Comment by avelar
2009-07-16 11:06:17

The TLS support was incorpored along time ago.
Please go to the official site http://sipe.sf.net

 
 
Comment by sandrar
2009-09-10 16:43:26

Hi! I was surfing and found your blog post… nice! I love your blog. :) Cheers! Sandra. R.

 
Comment by angelina jolie
2009-09-10 18:20:43

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

 
Comment by margohelp
2009-09-11 01:44:09

had recently herpes virus found in my blood. what I haveto do??? I’m in panic…

 
Comment by InfibeNef
2009-09-15 18:27:22

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?

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.