sippy

package module
v0.0.0-...-1058202 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2018 License: BSD-2-Clause Imports: 27 Imported by: 0

README

The go-b2bua is a GO port of the Sippy B2BUA

The main differences from the Python B2BUA are:

  • Smaller memory foot print (approx 2.5x).
  • All available CPU cores are utilized.
  • Runs faster (approx 4x per one CPU core).
  • The configuration object is not global thus allowing to run several B2BUA instances inside one executable.

Known problems:

  • No RADIUS support.

Documentation

Overview

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2017 Sippy Software, Inc. All rights reserved. Copyright (c) 2017 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved. Copyright (c) 2016 Andriy Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved. Copyright (c) 2016 Andriy Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved. Copyright (c) 2016 Andriy Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved. Copyright (c) 2016 Andriy Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved. Copyright (c) 2016 Andriy Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2014 Sippy Software, Inc. All rights reserved. Copyright (c) 2016 Andriy Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright (c) 2003-2005 Maxim Sobolev. All rights reserved. Copyright (c) 2006-2015 Sippy Software, Inc. All rights reserved. Copyright (c) 2015 Andrii Pylypenko. All rights reserved.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Index

Constants

View Source
const (
	TRYING = iota
	RINGING
	COMPLETED
	CONFIRMED
	TERMINATED
	UACK
)

Variables

View Source
var NETS_1918 = []struct {
	ip   net.IP
	mask net.IPMask
}{
	{net.IPv4(10, 0, 0, 0), net.IPv4Mask(255, 0, 0, 0)},
	{net.IPv4(172, 16, 0, 0), net.IPv4Mask(255, 240, 0, 0)},
	{net.IPv4(192, 168, 0, 0), net.IPv4Mask(255, 255, 0, 0)},
}

Functions

func NewAsyncReciever

func NewAsyncReciever(userv *udpServer, logger sippy_log.ErrorLogger) *asyncReceiver

func NewAsyncResolver

func NewAsyncResolver(userv *udpServer, logger sippy_log.ErrorLogger) *asyncResolver

func NewAsyncSender

func NewAsyncSender(userv *udpServer) *asyncSender

func NewClientTransactionObj

func NewClientTransactionObj(req sippy_types.SipRequest, tid *sippy_header.TID, userv sippy_net.Transport, data []byte, sip_tm *sipTransactionManager, resp_receiver sippy_types.ResponseReceiver, session_lock sync.Locker, address *sippy_net.HostPort, req_out_cb func(sippy_types.SipRequest)) (*clientTransaction, error)

func NewDefaultSipTransportFactory

func NewDefaultSipTransportFactory(config sippy_conf.Config) *default_sip_transport_factory

func NewLocal4Remote

func NewLocal4Remote(config sippy_conf.Config, handleIncoming sippy_net.DataPacketReceiver) (*local4remote, error)

func NewMsgBody

func NewMsgBody(content, mtype string) *msgBody

func NewRtpProxyClient

func NewRtpProxyClient(opts *rtpProxyClientOpts, config sippy_conf.Config, logger sippy_log.ErrorLogger) (sippy_types.RtpProxyClient, error)

func NewRtpProxyClientOpts

func NewRtpProxyClientOpts() *rtpProxyClientOpts

func NewServerTransaction

func NewServerTransaction(req sippy_types.SipRequest, checksum string, tid *sippy_header.TID, userv sippy_net.Transport, sip_tm *sipTransactionManager) (sippy_types.ServerTransaction, error)

func NewSipMsg

func NewSipMsg(rtime *sippy_time.MonoTime, config sippy_conf.Config) *sipMsg

func NewSipRequest

func NewSipRequest(method string, ruri *sippy_header.SipURL, sipver string, to *sippy_header.SipTo,
	from *sippy_header.SipFrom, via *sippy_header.SipVia, cseq int, callid *sippy_header.SipCallId,
	maxforwards *sippy_header.SipMaxForwards, body sippy_types.MsgBody, contact *sippy_header.SipContact,
	routes []*sippy_header.SipRoute, target *sippy_net.HostPort, cguid *sippy_header.SipCiscoGUID,
	user_agent *sippy_header.SipUserAgent, expires *sippy_header.SipExpires, config sippy_conf.Config) (*sipRequest, error)

func NewSipResponse

func NewSipResponse(scode int, reason, sipver string, from *sippy_header.SipFrom, callid *sippy_header.SipCallId,
	vias []*sippy_header.SipVia, to *sippy_header.SipTo, cseq *sippy_header.SipCSeq, rrs []*sippy_header.SipRecordRoute,
	body sippy_types.MsgBody, server *sippy_header.SipServer, config sippy_conf.Config) *sipResponse

func NewSipTransactionManager

func NewSipTransactionManager(config sippy_conf.Config, call_map sippy_types.CallMap) (*sipTransactionManager, error)

func NewStatefulProxy

func NewStatefulProxy(sip_tm sippy_types.SipTransactionManager, destination *sippy_net.HostPort, config sippy_conf.Config) *statefulProxy

func NewUacStateRinging

func NewUacStateRinging(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, scode int, config sippy_conf.Config) sippy_types.UaState

func NewUdpServer

func NewUdpServer(config sippy_conf.Config, uopts *udpServerOpts) (*udpServer, error)

func NewUdpServerOpts

func NewUdpServerOpts(laddress *sippy_net.HostPort, data_callback sippy_net.DataPacketReceiver) *udpServerOpts

func ParseSdpBody

func ParseSdpBody(body string) (*sdpBody, error)

func ParseSipHeader

func ParseSipHeader(s string, config sippy_conf.Config) ([]sippy_header.SipHeader, error)

func ParseSipMsg

func ParseSipMsg(_buf []byte, rtime *sippy_time.MonoTime, config sippy_conf.Config) (*sipMsg, error)

func ParseSipRequest

func ParseSipRequest(buf []byte, rtime *sippy_time.MonoTime, config sippy_conf.Config) (*sipRequest, error)

func ParseSipResponse

func ParseSipResponse(buf []byte, rtime *sippy_time.MonoTime, config sippy_conf.Config) (*sipResponse, error)

Types

type CCEventConnect

type CCEventConnect struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventConnect

func NewCCEventConnect(scode int, scode_reason string, msg_body sippy_types.MsgBody, rtime *sippy_time.MonoTime, origin string, extra_headers ...sippy_header.SipHeader) *CCEventConnect

func (*CCEventConnect) GetBody

func (self *CCEventConnect) GetBody() sippy_types.MsgBody

func (*CCEventConnect) String

func (self *CCEventConnect) String() string

type CCEventDisconnect

type CCEventDisconnect struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventDisconnect

func NewCCEventDisconnect(also *sippy_header.SipAddress, rtime *sippy_time.MonoTime, origin string, extra_headers ...sippy_header.SipHeader) *CCEventDisconnect

func (*CCEventDisconnect) GetRedirectURL

func (self *CCEventDisconnect) GetRedirectURL() *sippy_header.SipAddress

func (*CCEventDisconnect) String

func (self *CCEventDisconnect) String() string

type CCEventFail

type CCEventFail struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventFail

func NewCCEventFail(scode int, scode_reason string, rtime *sippy_time.MonoTime, origin string, extra_headers ...sippy_header.SipHeader) *CCEventFail

func (*CCEventFail) GetExtraHeaders

func (self *CCEventFail) GetExtraHeaders() []sippy_header.SipHeader

func (*CCEventFail) GetScode

func (self *CCEventFail) GetScode() int

func (*CCEventFail) GetScodeReason

func (self *CCEventFail) GetScodeReason() string

func (*CCEventFail) SetScode

func (self *CCEventFail) SetScode(scode int)

func (*CCEventFail) SetScodeReason

func (self *CCEventFail) SetScodeReason(reason string)

func (*CCEventFail) SetWarning

func (self *CCEventFail) SetWarning(text string)

func (*CCEventFail) String

func (self *CCEventFail) String() string

type CCEventGeneric

type CCEventGeneric struct {
	// contains filtered or unexported fields
}

func (*CCEventGeneric) AppendExtraHeader

func (self *CCEventGeneric) AppendExtraHeader(eh sippy_header.SipHeader)

func (*CCEventGeneric) GetExtraHeaders

func (self *CCEventGeneric) GetExtraHeaders() []sippy_header.SipHeader

func (*CCEventGeneric) GetMaxForwards

func (self *CCEventGeneric) GetMaxForwards() *sippy_header.SipMaxForwards

func (*CCEventGeneric) GetOrigin

func (self *CCEventGeneric) GetOrigin() string

func (*CCEventGeneric) GetReason

func (self *CCEventGeneric) GetReason() *sippy_header.SipReason

func (*CCEventGeneric) GetRtime

func (self *CCEventGeneric) GetRtime() *sippy_time.MonoTime

func (*CCEventGeneric) GetSeq

func (self *CCEventGeneric) GetSeq() int64

func (*CCEventGeneric) SetMaxForwards

func (self *CCEventGeneric) SetMaxForwards(max_forwards *sippy_header.SipMaxForwards)

func (*CCEventGeneric) SetReason

func (self *CCEventGeneric) SetReason(sip_reason *sippy_header.SipReason)

type CCEventInfo

type CCEventInfo struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventInfo

func NewCCEventInfo(rtime *sippy_time.MonoTime, origin string, msg_body sippy_types.MsgBody, extra_headers ...sippy_header.SipHeader) *CCEventInfo

func (*CCEventInfo) GetBody

func (self *CCEventInfo) GetBody() sippy_types.MsgBody

func (*CCEventInfo) String

func (self *CCEventInfo) String() string

type CCEventPreConnect

type CCEventPreConnect struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventPreConnect

func NewCCEventPreConnect(scode int, scode_reason string, body sippy_types.MsgBody, rtime *sippy_time.MonoTime, origin string) *CCEventPreConnect

func (*CCEventPreConnect) GetScode

func (self *CCEventPreConnect) GetScode() int

func (*CCEventPreConnect) GetScodeReason

func (self *CCEventPreConnect) GetScodeReason() string

func (*CCEventPreConnect) String

func (self *CCEventPreConnect) String() string

type CCEventRedirect

type CCEventRedirect struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventRedirect

func NewCCEventRedirect(scode int, scode_reason string, body sippy_types.MsgBody, addrs []*sippy_header.SipAddress, rtime *sippy_time.MonoTime, origin string, config sippy_conf.Config, extra_headers ...sippy_header.SipHeader) *CCEventRedirect

func (*CCEventRedirect) GetContacts

func (self *CCEventRedirect) GetContacts() []*sippy_header.SipContact

func (*CCEventRedirect) GetRedirectURL

func (self *CCEventRedirect) GetRedirectURL() *sippy_header.SipAddress

func (*CCEventRedirect) GetRedirectURLs

func (self *CCEventRedirect) GetRedirectURLs() []*sippy_header.SipAddress

func (*CCEventRedirect) SortAddresses

func (self *CCEventRedirect) SortAddresses()

func (*CCEventRedirect) String

func (self *CCEventRedirect) String() string

type CCEventRing

type CCEventRing struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventRing

func NewCCEventRing(scode int, scode_reason string, body sippy_types.MsgBody, rtime *sippy_time.MonoTime, origin string) *CCEventRing

func (*CCEventRing) GetBody

func (self *CCEventRing) GetBody() sippy_types.MsgBody

func (*CCEventRing) GetScode

func (self *CCEventRing) GetScode() int

func (*CCEventRing) String

func (self *CCEventRing) String() string

type CCEventTry

type CCEventTry struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventTry

func NewCCEventTry(call_id *sippy_header.SipCallId, cisco_guid *sippy_header.SipCiscoGUID, cli string, cld string, body sippy_types.MsgBody, auth *sippy_header.SipAuthorizationBody, caller_name string, rtime *sippy_time.MonoTime, origin string, extra_headers ...sippy_header.SipHeader) *CCEventTry

func (*CCEventTry) GetBody

func (self *CCEventTry) GetBody() sippy_types.MsgBody

func (*CCEventTry) GetCLD

func (self *CCEventTry) GetCLD() string

func (*CCEventTry) GetCLI

func (self *CCEventTry) GetCLI() string

func (*CCEventTry) GetCallerName

func (self *CCEventTry) GetCallerName() string

func (*CCEventTry) GetSipAuthorization

func (self *CCEventTry) GetSipAuthorization() *sippy_header.SipAuthorizationBody

func (*CCEventTry) GetSipCallId

func (self *CCEventTry) GetSipCallId() *sippy_header.SipCallId

func (*CCEventTry) GetSipCiscoGUID

func (self *CCEventTry) GetSipCiscoGUID() *sippy_header.SipCiscoGUID

func (*CCEventTry) String

func (self *CCEventTry) String() string

type CCEventUpdate

type CCEventUpdate struct {
	CCEventGeneric
	// contains filtered or unexported fields
}

func NewCCEventUpdate

func NewCCEventUpdate(rtime *sippy_time.MonoTime, origin string, reason *sippy_header.SipReason, max_forwards *sippy_header.SipMaxForwards, msg_body sippy_types.MsgBody) *CCEventUpdate

func (*CCEventUpdate) GetBody

func (self *CCEventUpdate) GetBody() sippy_types.MsgBody

func (*CCEventUpdate) String

func (self *CCEventUpdate) String() string

type ESipParseException

type ESipParseException struct {
	// contains filtered or unexported fields
}

func (*ESipParseException) Error

func (self *ESipParseException) Error() string

type Rtp_proxy_client_base

type Rtp_proxy_client_base struct {
	// contains filtered or unexported fields
}

func NewRtp_proxy_client_base

func NewRtp_proxy_client_base(heir sippy_types.RtpProxyClient, global_config sippy_conf.Config, opts *rtpProxyClientOpts, logger sippy_log.ErrorLogger) *Rtp_proxy_client_base

func (*Rtp_proxy_client_base) GetOpts

func (self *Rtp_proxy_client_base) GetOpts() sippy_types.RtpProxyClientOpts

func (*Rtp_proxy_client_base) GetProxyAddress

func (self *Rtp_proxy_client_base) GetProxyAddress() string

func (*Rtp_proxy_client_base) GoOffline

func (self *Rtp_proxy_client_base) GoOffline()

func (*Rtp_proxy_client_base) GoOnline

func (self *Rtp_proxy_client_base) GoOnline()

func (*Rtp_proxy_client_base) Init

func (self *Rtp_proxy_client_base) Init() error

func (*Rtp_proxy_client_base) InitWithAddress

func (self *Rtp_proxy_client_base) InitWithAddress(address net.Addr) error

func (*Rtp_proxy_client_base) IsLocal

func (self *Rtp_proxy_client_base) IsLocal() bool

func (*Rtp_proxy_client_base) IsOnline

func (self *Rtp_proxy_client_base) IsOnline() bool

func (*Rtp_proxy_client_base) SBindSupported

func (self *Rtp_proxy_client_base) SBindSupported() bool

func (*Rtp_proxy_client_base) SendCommand

func (self *Rtp_proxy_client_base) SendCommand(cmd string, cb func(string), session_lock sync.Locker)

func (*Rtp_proxy_client_base) Shutdown

func (self *Rtp_proxy_client_base) Shutdown()

func (*Rtp_proxy_client_base) TNotSupported

func (self *Rtp_proxy_client_base) TNotSupported() bool

type Rtp_proxy_client_stream

type Rtp_proxy_client_stream struct {
	// contains filtered or unexported fields
}

type Rtp_proxy_client_udp

type Rtp_proxy_client_udp struct {
	// contains filtered or unexported fields
}

type Rtp_proxy_session

type Rtp_proxy_session struct {
	// contains filtered or unexported fields
}

func NewRtp_proxy_session

func NewRtp_proxy_session(config sippy_conf.Config, rtp_proxy_clients []sippy_types.RtpProxyClient, call_id, from_tag, to_tag, notify_socket, notify_tag string, session_lock sync.Locker, callee_origin *sippy_sdp.SdpOrigin) (*Rtp_proxy_session, error)

func (*Rtp_proxy_session) CalleeOrigin

func (self *Rtp_proxy_session) CalleeOrigin() *sippy_sdp.SdpOrigin

func (*Rtp_proxy_session) CallerSessionExists

func (self *Rtp_proxy_session) CallerSessionExists() bool

func (*Rtp_proxy_session) Delete

func (self *Rtp_proxy_session) Delete()

func (Rtp_proxy_session) GetProxyAddress

func (self Rtp_proxy_session) GetProxyAddress() (string, error)

func (Rtp_proxy_session) IsLocal

func (self Rtp_proxy_session) IsLocal() (bool, error)

func (*Rtp_proxy_session) OnCalleeSdpChange

func (self *Rtp_proxy_session) OnCalleeSdpChange(sdp_body sippy_types.MsgBody, msg sippy_types.SipMsg, result_callback func(sippy_types.MsgBody)) error

func (*Rtp_proxy_session) OnCallerSdpChange

func (self *Rtp_proxy_session) OnCallerSdpChange(sdp_body sippy_types.MsgBody, cc_event sippy_types.CCEvent, result_callback func(sippy_types.MsgBody)) error

func (*Rtp_proxy_session) PlayCaller

func (self *Rtp_proxy_session) PlayCaller(prompt_name string, times int, result_callback func(string), index int)

def version(self, result_callback):

self.send_command("V", self.version_result, result_callback)

def version_result(self, result, result_callback):

result_callback(result)

func (Rtp_proxy_session) SBindSupported

func (self Rtp_proxy_session) SBindSupported() (bool, error)

func (*Rtp_proxy_session) SetAfterCallerSdpChange

func (self *Rtp_proxy_session) SetAfterCallerSdpChange(cb func(sippy_types.RtpProxyUpdateResult))

func (*Rtp_proxy_session) SetCalleeLaddress

func (self *Rtp_proxy_session) SetCalleeLaddress(addr string)

func (*Rtp_proxy_session) SetCalleeRaddress

func (self *Rtp_proxy_session) SetCalleeRaddress(addr *sippy_net.HostPort)

func (*Rtp_proxy_session) SetCallerLaddress

func (self *Rtp_proxy_session) SetCallerLaddress(addr string)

func (*Rtp_proxy_session) SetCallerRaddress

func (self *Rtp_proxy_session) SetCallerRaddress(addr *sippy_net.HostPort)

func (*Rtp_proxy_session) SetInsertNortpp

func (self *Rtp_proxy_session) SetInsertNortpp(v bool)

func (*Rtp_proxy_session) StartRecording

func (self *Rtp_proxy_session) StartRecording(rname string, result_callback func(string), index int)

func (*Rtp_proxy_session) StopPlayCaller

func (self *Rtp_proxy_session) StopPlayCaller(result_callback func(string), index int)

func (Rtp_proxy_session) TNotSupported

func (self Rtp_proxy_session) TNotSupported() (bool, error)

type SipRequestReceiver

type SipRequestReceiver func(sippy_types.SipRequest) *sippy_types.Ua_context

type Timeout

type Timeout struct {
	// contains filtered or unexported fields
}

func NewInactiveTimeout

func NewInactiveTimeout(callback func(), cb_lock sync.Locker, _timeout time.Duration, nticks int, logger sippy_log.ErrorLogger) *Timeout

func StartTimeout

func StartTimeout(callback func(), cb_lock sync.Locker, _timeout time.Duration, nticks int, logger sippy_log.ErrorLogger) *Timeout

func StartTimeoutWithSpread

func StartTimeoutWithSpread(callback func(), cb_lock sync.Locker, _timeout time.Duration, nticks int, logger sippy_log.ErrorLogger, spread float64) *Timeout

func (*Timeout) Cancel

func (self *Timeout) Cancel()

func (*Timeout) SpreadRuns

func (self *Timeout) SpreadRuns(spread float64)

func (*Timeout) Start

func (self *Timeout) Start()

type Ua

type Ua struct {
	// contains filtered or unexported fields
}

func NewUA

func NewUA(sip_tm sippy_types.SipTransactionManager, config sippy_conf.Config, nh_address *sippy_net.HostPort, call_controller sippy_types.CallController, session_lock sync.Locker, heir sippy_types.UA) *Ua

func (*Ua) BeforeRequestSent

func (self *Ua) BeforeRequestSent(sippy_types.SipRequest)

func (*Ua) BeforeResponseSent

func (self *Ua) BeforeResponseSent(sippy_types.SipResponse)

func (*Ua) CancelCreditTimer

func (self *Ua) CancelCreditTimer()

func (*Ua) CancelExpireTimer

func (self *Ua) CancelExpireTimer()

func (*Ua) CancelNoProgressTimer

func (self *Ua) CancelNoProgressTimer()

func (*Ua) CancelNoReplyTimer

func (self *Ua) CancelNoReplyTimer()

func (*Ua) ChangeState

func (self *Ua) ChangeState(newstate sippy_types.UaState)

func (*Ua) Config

func (self *Ua) Config() sippy_conf.Config

func (*Ua) ConnCb

func (self *Ua) ConnCb(rtime *sippy_time.MonoTime, origin string)

func (*Ua) DelayedRemoteSdpUpdate

func (self *Ua) DelayedRemoteSdpUpdate(event sippy_types.CCEvent, remote_sdp_body sippy_types.MsgBody)

func (*Ua) DiscCb

func (self *Ua) DiscCb(rtime *sippy_time.MonoTime, origin string, scode int, inreq sippy_types.SipRequest)

func (*Ua) Disconnect

func (self *Ua) Disconnect(rtime *sippy_time.MonoTime)

func (*Ua) EmitEvent

func (self *Ua) EmitEvent(event sippy_types.CCEvent)

func (*Ua) Enqueue

func (self *Ua) Enqueue(event sippy_types.CCEvent)

func (*Ua) FailCb

func (self *Ua) FailCb(rtime *sippy_time.MonoTime, origin string, scode int)

func (*Ua) GenRequest

func (self *Ua) GenRequest(method string, body sippy_types.MsgBody, nonce string, realm string, SipXXXAuthorization sippy_header.NewSipXXXAuthorizationFunc, extra_headers ...sippy_header.SipHeader) (sippy_types.SipRequest, error)

func (*Ua) GetAcct

func (self *Ua) GetAcct(disconnect_ts *sippy_time.MonoTime) (duration time.Duration, delay time.Duration, connected bool, disconnected bool)

func (*Ua) GetCGUID

func (self *Ua) GetCGUID() *sippy_header.SipCiscoGUID

func (*Ua) GetCLD

func (self *Ua) GetCLD() string

func (*Ua) GetCLI

func (self *Ua) GetCLI() string

func (*Ua) GetCallId

func (self *Ua) GetCallId() *sippy_header.SipCallId

func (*Ua) GetClientTransaction

func (self *Ua) GetClientTransaction() sippy_types.ClientTransaction

func (*Ua) GetConnCb

func (self *Ua) GetConnCb() sippy_types.OnConnectListener

func (*Ua) GetConnectTs

func (self *Ua) GetConnectTs() *sippy_time.MonoTime

func (*Ua) GetController

func (self *Ua) GetController() sippy_types.CallController

func (*Ua) GetDeadCb

func (self *Ua) GetDeadCb() sippy_types.OnDeadListener

func (*Ua) GetDiscCb

func (self *Ua) GetDiscCb() sippy_types.OnDisconnectListener

func (*Ua) GetDisconnectTs

func (self *Ua) GetDisconnectTs() *sippy_time.MonoTime

func (*Ua) GetExMtime

func (self *Ua) GetExMtime() *sippy_time.MonoTime

func (*Ua) GetExpireTime

func (self *Ua) GetExpireTime() time.Duration

func (*Ua) GetFailCb

func (self *Ua) GetFailCb() sippy_types.OnFailureListener

func (*Ua) GetFromDomain

func (self *Ua) GetFromDomain() string

func (*Ua) GetGoDeadTimeout

func (self *Ua) GetGoDeadTimeout() time.Duration

func (*Ua) GetKaInterval

func (self *Ua) GetKaInterval() time.Duration

func (*Ua) GetLContact

func (self *Ua) GetLContact() *sippy_header.SipContact

func (*Ua) GetLContacts

func (self *Ua) GetLContacts() []*sippy_header.SipContact

func (*Ua) GetLSDP

func (self *Ua) GetLSDP() sippy_types.MsgBody

func (*Ua) GetLTag

func (self *Ua) GetLTag() string

func (*Ua) GetLUri

func (self *Ua) GetLUri() *sippy_header.SipFrom

func (*Ua) GetLastScode

func (self *Ua) GetLastScode() int

func (*Ua) GetLateMedia

func (self *Ua) GetLateMedia() bool

func (*Ua) GetLocalUA

func (self *Ua) GetLocalUA() *sippy_header.SipUserAgent

func (*Ua) GetNoProgressTime

func (self *Ua) GetNoProgressTime() time.Duration

func (*Ua) GetNoReplyTime

func (self *Ua) GetNoReplyTime() time.Duration

func (*Ua) GetNpMtime

func (self *Ua) GetNpMtime() *sippy_time.MonoTime

func (*Ua) GetNrMtime

func (self *Ua) GetNrMtime() *sippy_time.MonoTime

func (*Ua) GetOnLocalSdpChange

func (self *Ua) GetOnLocalSdpChange() sippy_types.OnLocalSdpChange

func (*Ua) GetOnRemoteSdpChange

func (self *Ua) GetOnRemoteSdpChange() sippy_types.OnRemoteSdpChange

func (*Ua) GetOrigin

func (self *Ua) GetOrigin() string

func (*Ua) GetOutboundProxy

func (self *Ua) GetOutboundProxy() *sippy_net.HostPort

func (*Ua) GetP100Ts

func (self *Ua) GetP100Ts() *sippy_time.MonoTime

func (*Ua) GetP1xxTs

func (self *Ua) GetP1xxTs() *sippy_time.MonoTime

func (*Ua) GetPassAuth

func (self *Ua) GetPassAuth() bool

func (*Ua) GetPassword

func (self *Ua) GetPassword() string

func (*Ua) GetPendingTr

func (self *Ua) GetPendingTr() sippy_types.ClientTransaction

func (*Ua) GetRAddr

func (self *Ua) GetRAddr() *sippy_net.HostPort

func (*Ua) GetRAddr0

func (self *Ua) GetRAddr0() *sippy_net.HostPort

func (*Ua) GetRSDP

func (self *Ua) GetRSDP() sippy_types.MsgBody

func (*Ua) GetRTarget

func (self *Ua) GetRTarget() *sippy_header.SipURL

func (*Ua) GetRUri

func (self *Ua) GetRUri() *sippy_header.SipTo

func (*Ua) GetRemoteUA

func (self *Ua) GetRemoteUA() string

func (*Ua) GetRuriUserparams

func (self *Ua) GetRuriUserparams() []string

func (*Ua) GetSessionLock

func (self *Ua) GetSessionLock() sync.Locker

func (*Ua) GetSetupTs

func (self *Ua) GetSetupTs() *sippy_time.MonoTime

func (*Ua) GetSourceAddress

func (self *Ua) GetSourceAddress() *sippy_net.HostPort

func (*Ua) GetState

func (self *Ua) GetState() sippy_types.UaState

func (*Ua) GetToUsername

func (self *Ua) GetToUsername() string

func (*Ua) GetUasLossEmul

func (self *Ua) GetUasLossEmul() int

func (*Ua) GetUasResp

func (self *Ua) GetUasResp() sippy_types.SipResponse

func (*Ua) GetUsername

func (self *Ua) GetUsername() string

func (*Ua) HasNoProgressTimer

func (self *Ua) HasNoProgressTimer() bool

func (*Ua) HasNoReplyTimer

func (self *Ua) HasNoReplyTimer() bool

func (*Ua) HasOnLocalSdpChange

func (self *Ua) HasOnLocalSdpChange() bool

func (*Ua) HasOnRemoteSdpChange

func (self *Ua) HasOnRemoteSdpChange() bool

func (*Ua) IncLCSeq

func (self *Ua) IncLCSeq()

func (*Ua) IsYours

func (self *Ua) IsYours(req sippy_types.SipRequest, br0k3n_to bool) bool

func (*Ua) OnDead

func (self *Ua) OnDead()

func (*Ua) OnLocalSdpChange

func (self *Ua) OnLocalSdpChange(body sippy_types.MsgBody, event sippy_types.CCEvent, cb func(sippy_types.MsgBody)) error

func (*Ua) OnRemoteSdpChange

func (self *Ua) OnRemoteSdpChange(body sippy_types.MsgBody, req sippy_types.SipMsg, f func(x sippy_types.MsgBody)) error

func (*Ua) OnUnregister

func (self *Ua) OnUnregister()

func (*Ua) PrepTr

func (self *Ua) PrepTr(req sippy_types.SipRequest) (sippy_types.ClientTransaction, error)

func (*Ua) RecvEvent

func (self *Ua) RecvEvent(event sippy_types.CCEvent)

func (*Ua) RecvRequest

func (self *Ua) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) *sippy_types.Ua_context

func (*Ua) RecvResponse

func (self *Ua) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction)

func (*Ua) ResetCreditTime

func (self *Ua) ResetCreditTime(rtime *sippy_time.MonoTime, new_credit_times map[int64]*sippy_time.MonoTime)

func (*Ua) ResetOnLocalSdpChange

func (self *Ua) ResetOnLocalSdpChange()

func (*Ua) ResetOnRemoteSdpChange

func (self *Ua) ResetOnRemoteSdpChange()

func (*Ua) RingCb

func (self *Ua) RingCb(rtime *sippy_time.MonoTime, origin string, scode int)

func (*Ua) SendUasResponse

func (self *Ua) SendUasResponse(t sippy_types.ServerTransaction, scode int, reason string, body sippy_types.MsgBody, contacts []*sippy_header.SipContact, ack_wait bool, extra_headers ...sippy_header.SipHeader)

func (*Ua) SetAuth

func (self *Ua) SetAuth(auth sippy_header.SipHeader)

func (*Ua) SetBranch

func (self *Ua) SetBranch(branch string)

func (*Ua) SetCGUID

func (self *Ua) SetCGUID(cguid *sippy_header.SipCiscoGUID)

func (*Ua) SetCallId

func (self *Ua) SetCallId(call_id *sippy_header.SipCallId)

func (*Ua) SetClientTransaction

func (self *Ua) SetClientTransaction(tr sippy_types.ClientTransaction)

func (*Ua) SetConnCb

func (self *Ua) SetConnCb(conn_cb sippy_types.OnConnectListener)

func (*Ua) SetConnectTs

func (self *Ua) SetConnectTs(connect_ts *sippy_time.MonoTime)

func (*Ua) SetCreditTime

func (self *Ua) SetCreditTime(credit_time time.Duration)

func (*Ua) SetDeadCb

func (self *Ua) SetDeadCb(dead_cb sippy_types.OnDeadListener)

func (*Ua) SetDiscCb

func (self *Ua) SetDiscCb(disc_cb sippy_types.OnDisconnectListener)

func (*Ua) SetDisconnectTs

func (self *Ua) SetDisconnectTs(ts *sippy_time.MonoTime)

func (*Ua) SetExMtime

func (self *Ua) SetExMtime(t *sippy_time.MonoTime)

func (*Ua) SetExpireTime

func (self *Ua) SetExpireTime(expire_time time.Duration)

func (*Ua) SetExtraHeaders

func (self *Ua) SetExtraHeaders(extra_headers []sippy_header.SipHeader)

func (*Ua) SetFailCb

func (self *Ua) SetFailCb(fail_cb sippy_types.OnFailureListener)

func (*Ua) SetFromDomain

func (self *Ua) SetFromDomain(from_domain string)

func (*Ua) SetH323ConfId

func (self *Ua) SetH323ConfId(h323_conf_id *sippy_header.SipH323ConfId)

func (*Ua) SetKaInterval

func (self *Ua) SetKaInterval(ka time.Duration)

func (*Ua) SetLCSeq

func (self *Ua) SetLCSeq(cseq int)

func (*Ua) SetLContact

func (self *Ua) SetLContact(contact *sippy_header.SipContact)

func (*Ua) SetLSDP

func (self *Ua) SetLSDP(msg sippy_types.MsgBody)

func (*Ua) SetLUri

func (self *Ua) SetLUri(from *sippy_header.SipFrom)

func (*Ua) SetLastScode

func (self *Ua) SetLastScode(scode int)

func (*Ua) SetLateMedia

func (self *Ua) SetLateMedia(late_media bool)

func (*Ua) SetLocalUA

func (self *Ua) SetLocalUA(ua *sippy_header.SipUserAgent)

func (*Ua) SetNoProgressTime

func (self *Ua) SetNoProgressTime(no_progress_time time.Duration)

func (*Ua) SetNoReplyTime

func (self *Ua) SetNoReplyTime(no_reply_time time.Duration)

func (*Ua) SetNpMtime

func (self *Ua) SetNpMtime(t *sippy_time.MonoTime)

func (*Ua) SetNrMtime

func (self *Ua) SetNrMtime(t *sippy_time.MonoTime)

func (*Ua) SetOnLocalSdpChange

func (self *Ua) SetOnLocalSdpChange(on_local_sdp_change sippy_types.OnLocalSdpChange)

func (*Ua) SetOnRemoteSdpChange

func (self *Ua) SetOnRemoteSdpChange(on_remote_sdp_change sippy_types.OnRemoteSdpChange)

func (*Ua) SetOrigin

func (self *Ua) SetOrigin(origin string)

func (*Ua) SetOutboundProxy

func (self *Ua) SetOutboundProxy(outbound_proxy *sippy_net.HostPort)

func (*Ua) SetP100Ts

func (self *Ua) SetP100Ts(ts *sippy_time.MonoTime)

func (*Ua) SetP1xxTs

func (self *Ua) SetP1xxTs(ts *sippy_time.MonoTime)

func (*Ua) SetPassword

func (self *Ua) SetPassword(passwd string)

func (*Ua) SetPendingTr

func (self *Ua) SetPendingTr(tr sippy_types.ClientTransaction)

func (*Ua) SetRAddr

func (self *Ua) SetRAddr(addr *sippy_net.HostPort)

func (*Ua) SetRAddr0

func (self *Ua) SetRAddr0(addr *sippy_net.HostPort)

func (*Ua) SetRSDP

func (self *Ua) SetRSDP(sdp sippy_types.MsgBody)

func (*Ua) SetRTarget

func (self *Ua) SetRTarget(url *sippy_header.SipURL)

func (*Ua) SetRUri

func (self *Ua) SetRUri(ruri *sippy_header.SipTo)

func (*Ua) SetRoutes

func (self *Ua) SetRoutes(routes []*sippy_header.SipRoute)

func (*Ua) SetRuriUserparams

func (self *Ua) SetRuriUserparams(ruri_userparams []string)

func (*Ua) SetSetupTs

func (self *Ua) SetSetupTs(ts *sippy_time.MonoTime)

func (*Ua) SetSourceAddress

func (self *Ua) SetSourceAddress(addr *sippy_net.HostPort)

func (*Ua) SetToUsername

func (self *Ua) SetToUsername(to_username string)

func (*Ua) SetUasResp

func (self *Ua) SetUasResp(resp sippy_types.SipResponse)

func (*Ua) SetUsername

func (self *Ua) SetUsername(username string)

func (*Ua) ShouldUseRefer

func (self *Ua) ShouldUseRefer() bool

func (*Ua) SipTM

func (self *Ua) SipTM() sippy_types.SipTransactionManager

func (*Ua) StartCreditTimer

func (self *Ua) StartCreditTimer(rtime *sippy_time.MonoTime)

func (*Ua) StartExpireTimer

func (self *Ua) StartExpireTimer(t *sippy_time.MonoTime)

func (*Ua) StartNoProgressTimer

func (self *Ua) StartNoProgressTimer(t *sippy_time.MonoTime)

func (*Ua) StartNoReplyTimer

func (self *Ua) StartNoReplyTimer(t *sippy_time.MonoTime)

func (*Ua) String

func (self *Ua) String() string

func (*Ua) UasLossEmul

func (self *Ua) UasLossEmul() int

func (*Ua) UpdateRouting

func (self *Ua) UpdateRouting(resp sippy_types.SipResponse, update_rtarget bool, reverse_routes bool)

type UaStateConnected

type UaStateConnected struct {
	// contains filtered or unexported fields
}

func NewUaStateConnected

func NewUaStateConnected(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, config sippy_conf.Config) *UaStateConnected

func (UaStateConnected) Cancel

func (self UaStateConnected) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UaStateConnected) IsConnected

func (self UaStateConnected) IsConnected() bool

func (*UaStateConnected) OnActivation

func (self *UaStateConnected) OnActivation()

func (*UaStateConnected) OnStateChange

func (self *UaStateConnected) OnStateChange()

func (*UaStateConnected) RecvACK

func (self *UaStateConnected) RecvACK(req sippy_types.SipRequest)

func (*UaStateConnected) RecvEvent

func (self *UaStateConnected) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (*UaStateConnected) RecvRequest

func (self *UaStateConnected) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UaStateConnected) RecvResponse

func (self UaStateConnected) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UaStateConnected) String

func (self *UaStateConnected) String() string

type UaStateDead

type UaStateDead struct {
	// contains filtered or unexported fields
}

func NewUaStateDead

func NewUaStateDead(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, config sippy_conf.Config) *UaStateDead

func (UaStateDead) Cancel

func (self UaStateDead) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UaStateDead) IsConnected

func (self UaStateDead) IsConnected() bool

func (*UaStateDead) OnActivation

func (self *UaStateDead) OnActivation()

func (UaStateDead) OnStateChange

func (UaStateDead) OnStateChange()

func (UaStateDead) RecvACK

func (UaStateDead) RecvACK(sippy_types.SipRequest)

func (UaStateDead) RecvEvent

func (self UaStateDead) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UaStateDead) RecvRequest

func (self UaStateDead) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UaStateDead) RecvResponse

func (self UaStateDead) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UaStateDead) String

func (self *UaStateDead) String() string

type UaStateDisconnected

type UaStateDisconnected struct {
	// contains filtered or unexported fields
}

func NewUaStateDisconnected

func NewUaStateDisconnected(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, scode int, inreq sippy_types.SipRequest, config sippy_conf.Config) *UaStateDisconnected

func (UaStateDisconnected) Cancel

func (self UaStateDisconnected) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UaStateDisconnected) IsConnected

func (self UaStateDisconnected) IsConnected() bool

func (*UaStateDisconnected) OnActivation

func (self *UaStateDisconnected) OnActivation()

func (UaStateDisconnected) OnStateChange

func (UaStateDisconnected) OnStateChange()

func (UaStateDisconnected) RecvACK

func (UaStateDisconnected) RecvACK(sippy_types.SipRequest)

func (UaStateDisconnected) RecvEvent

func (self UaStateDisconnected) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (*UaStateDisconnected) RecvRequest

func (self *UaStateDisconnected) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UaStateDisconnected) RecvResponse

func (self UaStateDisconnected) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UaStateDisconnected) String

func (self *UaStateDisconnected) String() string

type UaStateFailed

type UaStateFailed struct {
	// contains filtered or unexported fields
}

func NewUaStateFailed

func NewUaStateFailed(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, scode int, config sippy_conf.Config) *UaStateFailed

func (UaStateFailed) Cancel

func (self UaStateFailed) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UaStateFailed) IsConnected

func (self UaStateFailed) IsConnected() bool

func (*UaStateFailed) OnActivation

func (self *UaStateFailed) OnActivation()

func (UaStateFailed) OnStateChange

func (UaStateFailed) OnStateChange()

func (UaStateFailed) RecvACK

func (UaStateFailed) RecvACK(sippy_types.SipRequest)

func (UaStateFailed) RecvEvent

func (self UaStateFailed) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UaStateFailed) RecvRequest

func (self UaStateFailed) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UaStateFailed) RecvResponse

func (self UaStateFailed) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UaStateFailed) String

func (self *UaStateFailed) String() string

type UacStateCancelling

type UacStateCancelling struct {
	// contains filtered or unexported fields
}

func NewUacStateCancelling

func NewUacStateCancelling(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, scode int, config sippy_conf.Config) *UacStateCancelling

func (UacStateCancelling) Cancel

func (self UacStateCancelling) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UacStateCancelling) IsConnected

func (self UacStateCancelling) IsConnected() bool

func (*UacStateCancelling) OnActivation

func (self *UacStateCancelling) OnActivation()

func (UacStateCancelling) OnStateChange

func (UacStateCancelling) OnStateChange()

func (UacStateCancelling) RecvACK

func (UacStateCancelling) RecvACK(sippy_types.SipRequest)

func (*UacStateCancelling) RecvEvent

func (self *UacStateCancelling) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UacStateCancelling) RecvRequest

func (self UacStateCancelling) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (*UacStateCancelling) RecvResponse

func (self *UacStateCancelling) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) sippy_types.UaState

func (*UacStateCancelling) String

func (self *UacStateCancelling) String() string

type UacStateIdle

type UacStateIdle struct {
	// contains filtered or unexported fields
}

func NewUacStateIdle

func NewUacStateIdle(ua sippy_types.UA, config sippy_conf.Config) *UacStateIdle

func (UacStateIdle) Cancel

func (self UacStateIdle) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UacStateIdle) IsConnected

func (self UacStateIdle) IsConnected() bool

func (*UacStateIdle) OnActivation

func (self *UacStateIdle) OnActivation()

func (UacStateIdle) OnStateChange

func (UacStateIdle) OnStateChange()

func (UacStateIdle) RecvACK

func (UacStateIdle) RecvACK(sippy_types.SipRequest)

func (*UacStateIdle) RecvEvent

func (self *UacStateIdle) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UacStateIdle) RecvRequest

func (self UacStateIdle) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UacStateIdle) RecvResponse

func (self UacStateIdle) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UacStateIdle) String

func (self *UacStateIdle) String() string

type UacStateRinging

type UacStateRinging struct {
	// contains filtered or unexported fields
}

func (UacStateRinging) Cancel

func (self UacStateRinging) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UacStateRinging) IsConnected

func (self UacStateRinging) IsConnected() bool

func (*UacStateRinging) OnActivation

func (self *UacStateRinging) OnActivation()

func (UacStateRinging) OnStateChange

func (UacStateRinging) OnStateChange()

func (UacStateRinging) RecvACK

func (UacStateRinging) RecvACK(sippy_types.SipRequest)

func (*UacStateRinging) RecvEvent

func (self *UacStateRinging) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UacStateRinging) RecvRequest

func (self UacStateRinging) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (*UacStateRinging) RecvResponse

func (self *UacStateRinging) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) sippy_types.UaState

func (*UacStateRinging) String

func (self *UacStateRinging) String() string

type UacStateTrying

type UacStateTrying struct {
	// contains filtered or unexported fields
}

func NewUacStateTrying

func NewUacStateTrying(ua sippy_types.UA, config sippy_conf.Config) *UacStateTrying

func (UacStateTrying) Cancel

func (self UacStateTrying) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UacStateTrying) IsConnected

func (self UacStateTrying) IsConnected() bool

func (*UacStateTrying) OnActivation

func (self *UacStateTrying) OnActivation()

func (UacStateTrying) OnStateChange

func (UacStateTrying) OnStateChange()

func (UacStateTrying) RecvACK

func (UacStateTrying) RecvACK(sippy_types.SipRequest)

func (*UacStateTrying) RecvEvent

func (self *UacStateTrying) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UacStateTrying) RecvRequest

func (self UacStateTrying) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (*UacStateTrying) RecvResponse

func (self *UacStateTrying) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) sippy_types.UaState

func (*UacStateTrying) String

func (self *UacStateTrying) String() string

type UacStateUpdating

type UacStateUpdating struct {
	// contains filtered or unexported fields
}

func NewUacStateUpdating

func NewUacStateUpdating(ua sippy_types.UA, config sippy_conf.Config) *UacStateUpdating

func (UacStateUpdating) Cancel

func (self UacStateUpdating) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UacStateUpdating) IsConnected

func (self UacStateUpdating) IsConnected() bool

func (*UacStateUpdating) OnActivation

func (self *UacStateUpdating) OnActivation()

func (UacStateUpdating) OnStateChange

func (UacStateUpdating) OnStateChange()

func (UacStateUpdating) RecvACK

func (UacStateUpdating) RecvACK(sippy_types.SipRequest)

func (*UacStateUpdating) RecvEvent

func (self *UacStateUpdating) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (*UacStateUpdating) RecvRequest

func (self *UacStateUpdating) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (*UacStateUpdating) RecvResponse

func (self *UacStateUpdating) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) sippy_types.UaState

func (*UacStateUpdating) String

func (self *UacStateUpdating) String() string

type UasStateIdle

type UasStateIdle struct {
	// contains filtered or unexported fields
}

func NewUasStateIdle

func NewUasStateIdle(ua sippy_types.UA, config sippy_conf.Config) *UasStateIdle

func (UasStateIdle) Cancel

func (self UasStateIdle) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UasStateIdle) IsConnected

func (self UasStateIdle) IsConnected() bool

func (*UasStateIdle) OnActivation

func (self *UasStateIdle) OnActivation()

func (UasStateIdle) OnStateChange

func (UasStateIdle) OnStateChange()

func (UasStateIdle) RecvACK

func (UasStateIdle) RecvACK(sippy_types.SipRequest)

func (UasStateIdle) RecvEvent

func (self UasStateIdle) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, error)

func (*UasStateIdle) RecvRequest

func (self *UasStateIdle) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UasStateIdle) RecvResponse

func (self UasStateIdle) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UasStateIdle) String

func (self *UasStateIdle) String() string

type UasStateRinging

type UasStateRinging struct {
	// contains filtered or unexported fields
}

func NewUasStateRinging

func NewUasStateRinging(ua sippy_types.UA, rtime *sippy_time.MonoTime, origin string, scode int, config sippy_conf.Config) *UasStateRinging

func (*UasStateRinging) Cancel

func (self *UasStateRinging) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UasStateRinging) IsConnected

func (self UasStateRinging) IsConnected() bool

func (*UasStateRinging) OnActivation

func (self *UasStateRinging) OnActivation()

func (UasStateRinging) OnStateChange

func (UasStateRinging) OnStateChange()

func (UasStateRinging) RecvACK

func (UasStateRinging) RecvACK(sippy_types.SipRequest)

func (*UasStateRinging) RecvEvent

func (self *UasStateRinging) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, error)

func (*UasStateRinging) RecvRequest

func (self *UasStateRinging) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UasStateRinging) RecvResponse

func (self UasStateRinging) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UasStateRinging) String

func (self *UasStateRinging) String() string

type UasStateTrying

type UasStateTrying struct {
	// contains filtered or unexported fields
}

func NewUasStateTrying

func NewUasStateTrying(ua sippy_types.UA, config sippy_conf.Config) *UasStateTrying

func (*UasStateTrying) Cancel

func (self *UasStateTrying) Cancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)

func (UasStateTrying) IsConnected

func (self UasStateTrying) IsConnected() bool

func (*UasStateTrying) OnActivation

func (self *UasStateTrying) OnActivation()

func (UasStateTrying) OnStateChange

func (UasStateTrying) OnStateChange()

func (UasStateTrying) RecvACK

func (UasStateTrying) RecvACK(sippy_types.SipRequest)

func (*UasStateTrying) RecvEvent

func (self *UasStateTrying) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, error)

func (UasStateTrying) RecvRequest

func (self UasStateTrying) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UasStateTrying) RecvResponse

func (self UasStateTrying) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UasStateTrying) String

func (self *UasStateTrying) String() string

type UasStateUpdating

type UasStateUpdating struct {
	// contains filtered or unexported fields
}

func NewUasStateUpdating

func NewUasStateUpdating(ua sippy_types.UA, config sippy_conf.Config) *UasStateUpdating

func (*UasStateUpdating) Cancel

func (self *UasStateUpdating) Cancel(rtime *sippy_time.MonoTime, inreq sippy_types.SipRequest)

func (UasStateUpdating) IsConnected

func (self UasStateUpdating) IsConnected() bool

func (*UasStateUpdating) OnActivation

func (self *UasStateUpdating) OnActivation()

func (UasStateUpdating) OnStateChange

func (UasStateUpdating) OnStateChange()

func (UasStateUpdating) RecvACK

func (UasStateUpdating) RecvACK(sippy_types.SipRequest)

func (*UasStateUpdating) RecvEvent

func (self *UasStateUpdating) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, error)

func (*UasStateUpdating) RecvRequest

func (self *UasStateUpdating) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) sippy_types.UaState

func (UasStateUpdating) RecvResponse

func (self UasStateUpdating) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) sippy_types.UaState

func (*UasStateUpdating) String

func (self *UasStateUpdating) String() string

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL