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-2015 Sippy Software, Inc. 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) 2019 Sippy Software, Inc. 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-2020 Sippy Software, Inc. 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
- Variables
- func NewAsyncReciever(userv *UdpServer, logger sippy_log.ErrorLogger) *asyncReceiver
- func NewAsyncResolver(userv *UdpServer, logger sippy_log.ErrorLogger) *asyncResolver
- func NewAsyncSender(userv *UdpServer, n int) *asyncSender
- func NewClientTransactionObj(req sippy_types.SipRequest, tid *sippy_header.TID, userv sippy_net.Transport, ...) (*clientTransaction, error)
- func NewDefaultSipTransportFactory(config sippy_conf.Config) *default_sip_transport_factory
- func NewLocal4Remote(config sippy_conf.Config, handleIncoming sippy_net.DataPacketReceiver) (*local4remote, error)
- func NewMsgBody(content, mtype string) *msgBody
- func NewRtpProxyClient(opts *rtpProxyClientOpts) sippy_types.RtpProxyClient
- func NewRtpProxyClientOpts(spath string, bind_address *sippy_net.HostPort, config sippy_conf.Config, ...) (*rtpProxyClientOpts, error)
- func NewServerTransaction(req sippy_types.SipRequest, checksum string, tid *sippy_header.TID, ...) (sippy_types.ServerTransaction, error)
- func NewSipMsg(rtime *sippy_time.MonoTime, config sippy_conf.Config) *sipMsg
- func NewSipRequest(method string, ruri *sippy_header.SipURL, sipver string, ...) (*sipRequest, error)
- func NewSipResponse(scode int, reason, sipver string, from *sippy_header.SipFrom, ...) *sipResponse
- func NewSipTransactionManager(config sippy_conf.Config, call_map sippy_types.CallMap) (*sipTransactionManager, error)
- func NewStatefulProxy(sip_tm sippy_types.SipTransactionManager, destination *sippy_net.HostPort, ...) *statefulProxy
- func NewUacStateRinging(ua sippy_types.UA, config sippy_conf.Config) sippy_types.UaState
- func NewUdpServerOpts(laddress *sippy_net.HostPort, data_callback sippy_net.DataPacketReceiver) *udpServerOpts
- func ParseSdpBody(body string) (*sdpBody, error)
- func ParseSipHeader(s string) ([]sippy_header.SipHeader, error)
- func ParseSipMsg(_buf []byte, rtime *sippy_time.MonoTime, config sippy_conf.Config) (*sipMsg, error)
- func ParseSipRequest(buf []byte, rtime *sippy_time.MonoTime, config sippy_conf.Config) (*sipRequest, error)
- func ParseSipResponse(buf []byte, rtime *sippy_time.MonoTime, config sippy_conf.Config) (*sipResponse, error)
- type CCEventConnect
- type CCEventDisconnect
- type CCEventFail
- func (*CCEventFail) GetBody() sippy_types.MsgBody
- func (self *CCEventFail) GetExtraHeaders() []sippy_header.SipHeader
- func (self *CCEventFail) GetScode() int
- func (self *CCEventFail) GetScodeReason() string
- func (self *CCEventFail) SetScode(scode int)
- func (self *CCEventFail) SetScodeReason(reason string)
- func (self *CCEventFail) SetWarning(text string)
- func (self *CCEventFail) String() string
- type CCEventGeneric
- func (self *CCEventGeneric) AppendExtraHeader(eh sippy_header.SipHeader)
- func (self *CCEventGeneric) GetExtraHeaders() []sippy_header.SipHeader
- func (self *CCEventGeneric) GetMaxForwards() *sippy_header.SipMaxForwards
- func (self *CCEventGeneric) GetOrigin() string
- func (self *CCEventGeneric) GetReason() *sippy_header.SipReason
- func (self *CCEventGeneric) GetRtime() *sippy_time.MonoTime
- func (self *CCEventGeneric) GetSeq() int64
- func (self *CCEventGeneric) SetMaxForwards(max_forwards *sippy_header.SipMaxForwards)
- func (self *CCEventGeneric) SetReason(sip_reason *sippy_header.SipReason)
- type CCEventInfo
- type CCEventPreConnect
- type CCEventRedirect
- func (*CCEventRedirect) GetBody() sippy_types.MsgBody
- func (self *CCEventRedirect) GetContacts() []*sippy_header.SipContact
- func (self *CCEventRedirect) GetRedirectURL() *sippy_header.SipAddress
- func (self *CCEventRedirect) GetRedirectURLs() []*sippy_header.SipAddress
- func (self *CCEventRedirect) SortAddresses()
- func (self *CCEventRedirect) String() string
- type CCEventRing
- type CCEventTry
- func (self *CCEventTry) GetBody() sippy_types.MsgBody
- func (self *CCEventTry) GetCLD() string
- func (self *CCEventTry) GetCLI() string
- func (self *CCEventTry) GetCallerName() string
- func (self *CCEventTry) GetSipAuthorizationBody() *sippy_header.SipAuthorizationBody
- func (self *CCEventTry) GetSipAuthorizationHF() sippy_header.SipAuthorizationHeader
- func (self *CCEventTry) GetSipCallId() *sippy_header.SipCallId
- func (self *CCEventTry) SetRoutes(routes []*sippy_header.SipRoute)
- func (self *CCEventTry) String() string
- type CCEventUpdate
- type ESipParseException
- type Rtp_proxy_client_base
- func (self *Rtp_proxy_client_base) Address() net.Addr
- func (self *Rtp_proxy_client_base) GetActiveSessions() int64
- func (self *Rtp_proxy_client_base) GetActiveStreams() int64
- func (self *Rtp_proxy_client_base) GetOpts() sippy_types.RtpProxyClientOpts
- func (self *Rtp_proxy_client_base) GetPReceived() int64
- func (self *Rtp_proxy_client_base) GetPTransmitted() int64
- func (self *Rtp_proxy_client_base) GetProxyAddress() string
- func (self *Rtp_proxy_client_base) GetRtpcDelay() float64
- func (self *Rtp_proxy_client_base) GetSessionsCreated() int64
- func (self *Rtp_proxy_client_base) GoOffline()
- func (self *Rtp_proxy_client_base) GoOnline()
- func (self *Rtp_proxy_client_base) IsLocal() bool
- func (self *Rtp_proxy_client_base) IsOnline() bool
- func (self *Rtp_proxy_client_base) IsShutDown() bool
- func (self *Rtp_proxy_client_base) Reconnect(addr net.Addr, bind_addr *sippy_net.HostPort)
- func (self *Rtp_proxy_client_base) SBindSupported() bool
- func (self *Rtp_proxy_client_base) SendCommand(cmd string, cb func(string))
- func (self *Rtp_proxy_client_base) Shutdown()
- func (self *Rtp_proxy_client_base) Start() error
- func (self *Rtp_proxy_client_base) TNotSupported() bool
- func (self *Rtp_proxy_client_base) UpdateActive(...)
- func (self *Rtp_proxy_client_base) WdntSupported() bool
- type Rtp_proxy_client_stream
- type Rtp_proxy_client_udp
- type Rtp_proxy_cmd
- type Rtp_proxy_session
- func (self *Rtp_proxy_session) CallerSessionExists() bool
- func (self *Rtp_proxy_session) Delete()
- func (self *Rtp_proxy_session) GetProxyAddress() (string, error)
- func (self *Rtp_proxy_session) IsLocal() (bool, error)
- func (self *Rtp_proxy_session) OnCalleeSdpChange(sdp_body sippy_types.MsgBody, result_callback func(sippy_types.MsgBody)) error
- func (self *Rtp_proxy_session) OnCallerSdpChange(sdp_body sippy_types.MsgBody, result_callback func(sippy_types.MsgBody)) error
- func (self *Rtp_proxy_session) PlayCaller(prompt_name string, times int, result_callback func(string), index int)
- func (self *Rtp_proxy_session) SBindSupported() (bool, error)
- func (self *Rtp_proxy_session) SetAfterCallerSdpChange(cb func(sippy_types.RtpProxyUpdateResult))
- func (self *Rtp_proxy_session) SetCalleeLaddress(addr string)
- func (self *Rtp_proxy_session) SetCalleeRaddress(addr *sippy_net.HostPort)
- func (self *Rtp_proxy_session) SetCallerLaddress(addr string)
- func (self *Rtp_proxy_session) SetCallerRaddress(addr *sippy_net.HostPort)
- func (self *Rtp_proxy_session) SetInsertNortpp(v bool)
- func (self *Rtp_proxy_session) StartRecording(rname string, result_callback func(string), index int)
- func (self *Rtp_proxy_session) StopPlayCaller(result_callback func(string), index int)
- func (self *Rtp_proxy_session) TNotSupported() (bool, error)
- type Rtpp_stats
- type SdpSession
- type Timeout
- func NewInactiveTimeout(callback func(), cb_lock sync.Locker, _timeout time.Duration, nticks int, ...) *Timeout
- func StartTimeout(callback func(), cb_lock sync.Locker, _timeout time.Duration, nticks int, ...) *Timeout
- func StartTimeoutWithSpread(callback func(), cb_lock sync.Locker, _timeout time.Duration, nticks int, ...) *Timeout
- type Ua
- func (self *Ua) BeforeRequestSent(sippy_types.SipRequest)
- func (self *Ua) BeforeResponseSent(sippy_types.SipResponse)
- func (self *Ua) BeginClientTransaction(req sippy_types.SipRequest, tr sippy_types.ClientTransaction)
- func (self *Ua) BeginNewClientTransaction(req sippy_types.SipRequest, resp_receiver sippy_types.ResponseReceiver)
- func (self *Ua) CancelCreditTimer()
- func (self *Ua) CancelExpireTimer()
- func (self *Ua) CancelNoProgressTimer()
- func (self *Ua) CancelNoReplyTimer()
- func (self *Ua) ChangeState(newstate sippy_types.UaState, cb func())
- func (self *Ua) Cleanup()
- func (self *Ua) Config() sippy_conf.Config
- func (self *Ua) ConnCb(rtime *sippy_time.MonoTime, origin string)
- func (self *Ua) DelayedRemoteSdpUpdate(event sippy_types.CCEvent, remote_sdp_body sippy_types.MsgBody)
- func (self *Ua) DiscCb(rtime *sippy_time.MonoTime, origin string, scode int, ...)
- func (self *Ua) Disconnect(rtime *sippy_time.MonoTime, origin string)
- func (self *Ua) EmitEvent(event sippy_types.CCEvent)
- func (self *Ua) Enqueue(event sippy_types.CCEvent)
- func (self *Ua) FailCb(rtime *sippy_time.MonoTime, origin string, scode int)
- func (self *Ua) GenRequest(method string, body sippy_types.MsgBody, challenge sippy_types.Challenge, ...) (sippy_types.SipRequest, error)
- func (self *Ua) GetAcct(disconnect_ts *sippy_time.MonoTime) (duration time.Duration, delay time.Duration, connected bool, disconnected bool)
- func (self *Ua) GetCLD() string
- func (self *Ua) GetCLI() string
- func (self *Ua) GetCallId() *sippy_header.SipCallId
- func (self *Ua) GetClientTransaction() sippy_types.ClientTransaction
- func (self *Ua) GetConnCb() sippy_types.OnConnectListener
- func (self *Ua) GetConnectTs() *sippy_time.MonoTime
- func (self *Ua) GetController() sippy_types.CallController
- func (self *Ua) GetDeadCb() sippy_types.OnDeadListener
- func (self *Ua) GetDiscCb() sippy_types.OnDisconnectListener
- func (self *Ua) GetDisconnectTs() *sippy_time.MonoTime
- func (self *Ua) GetDlgHeaders() []sippy_header.SipHeader
- func (self *Ua) GetExMtime() *sippy_time.MonoTime
- func (self *Ua) GetExpireTime() time.Duration
- func (self *Ua) GetExtraHeaders() []sippy_header.SipHeader
- func (self *Ua) GetFailCb() sippy_types.OnFailureListener
- func (self *Ua) GetGoDeadTimeout() time.Duration
- func (self *Ua) GetKaInterval() time.Duration
- func (self *Ua) GetLContact() *sippy_header.SipContact
- func (self *Ua) GetLContacts() []*sippy_header.SipContact
- func (self *Ua) GetLSDP() sippy_types.MsgBody
- func (self *Ua) GetLTag() string
- func (self *Ua) GetLUri() *sippy_header.SipFrom
- func (self *Ua) GetLastScode() int
- func (self *Ua) GetLateMedia() bool
- func (self *Ua) GetLocalUA() *sippy_header.SipUserAgent
- func (self *Ua) GetNoProgressTime() time.Duration
- func (self *Ua) GetNoReplyTime() time.Duration
- func (self *Ua) GetNpMtime() *sippy_time.MonoTime
- func (self *Ua) GetNrMtime() *sippy_time.MonoTime
- func (self *Ua) GetOnLocalSdpChange() sippy_types.OnLocalSdpChange
- func (self *Ua) GetOnRemoteSdpChange() sippy_types.OnRemoteSdpChange
- func (self *Ua) GetOrigin() string
- func (self *Ua) GetOutboundProxy() *sippy_net.HostPort
- func (self *Ua) GetP100Ts() *sippy_time.MonoTime
- func (self *Ua) GetP1xxTs() *sippy_time.MonoTime
- func (self *Ua) GetPassAuth() bool
- func (self *Ua) GetPassword() string
- func (self *Ua) GetPendingTr() sippy_types.ClientTransaction
- func (self *Ua) GetRAddr() *sippy_net.HostPort
- func (self *Ua) GetRAddr0() *sippy_net.HostPort
- func (self *Ua) GetRSDP() sippy_types.MsgBody
- func (self *Ua) GetRTarget() *sippy_header.SipURL
- func (self *Ua) GetRUri() *sippy_header.SipTo
- func (self *Ua) GetRemoteUA() string
- func (self *Ua) GetSessionLock() sync.Locker
- func (self *Ua) GetSetupTs() *sippy_time.MonoTime
- func (self *Ua) GetSourceAddress() *sippy_net.HostPort
- func (self *Ua) GetState() sippy_types.UaStateID
- func (self *Ua) GetStateName() string
- func (self *Ua) GetUasLossEmul() int
- func (self *Ua) GetUasResp() sippy_types.SipResponse
- func (self *Ua) GetUsername() string
- func (self *Ua) HasNoProgressTimer() bool
- func (self *Ua) HasNoReplyTimer() bool
- func (self *Ua) HasOnLocalSdpChange() bool
- func (self *Ua) HasOnRemoteSdpChange() bool
- func (self *Ua) IsYours(req sippy_types.SipRequest, br0k3n_to bool) bool
- func (self *Ua) OnDead()
- func (self *Ua) OnEarlyUasDisconnect(ev sippy_types.CCEvent) (int, string)
- func (self *Ua) OnLocalSdpChange(body sippy_types.MsgBody, cb func(sippy_types.MsgBody)) error
- func (self *Ua) OnReinvite(req sippy_types.SipRequest, event_update sippy_types.CCEvent)
- func (self *Ua) OnRemoteSdpChange(body sippy_types.MsgBody, f func(x sippy_types.MsgBody)) error
- func (self *Ua) OnUacSetupComplete()
- func (self *Ua) OnUnregister()
- func (self *Ua) PassAuth() bool
- func (self *Ua) PrRel() bool
- func (self *Ua) PrepTr(req sippy_types.SipRequest, eh []sippy_header.SipHeader) (sippy_types.ClientTransaction, error)
- func (self *Ua) RecvACK(req sippy_types.SipRequest)
- func (self *Ua) RecvEvent(event sippy_types.CCEvent)
- func (self *Ua) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *Ua) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) *sippy_types.Ua_context
- func (self *Ua) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction)
- func (self *Ua) RegConsumer(consumer sippy_types.UA, call_id string)
- func (self *Ua) ResetCreditTime(rtime *sippy_time.MonoTime, new_credit_times map[int64]*sippy_time.MonoTime)
- func (self *Ua) ResetOnLocalSdpChange()
- func (self *Ua) ResetOnRemoteSdpChange()
- func (self *Ua) RingCb(rtime *sippy_time.MonoTime, origin string, scode int)
- func (self *Ua) SendUasResponse(t sippy_types.ServerTransaction, scode int, reason string, ...)
- func (self *Ua) SetAuth(auth sippy_header.SipHeader)
- func (self *Ua) SetBranch(branch string)
- func (self *Ua) SetCallId(call_id *sippy_header.SipCallId)
- func (self *Ua) SetClientTransaction(tr sippy_types.ClientTransaction)
- func (self *Ua) SetConnCb(conn_cb sippy_types.OnConnectListener)
- func (self *Ua) SetConnectTs(connect_ts *sippy_time.MonoTime)
- func (self *Ua) SetCreditTime(credit_time time.Duration)
- func (self *Ua) SetDeadCb(dead_cb sippy_types.OnDeadListener)
- func (self *Ua) SetDiscCb(disc_cb sippy_types.OnDisconnectListener)
- func (self *Ua) SetDisconnectTs(ts *sippy_time.MonoTime)
- func (self *Ua) SetDlgHeaders(hdrs []sippy_header.SipHeader)
- func (self *Ua) SetExMtime(t *sippy_time.MonoTime)
- func (self *Ua) SetExpireStartsOnSetup(v bool)
- func (self *Ua) SetExpireTime(expire_time time.Duration)
- func (self *Ua) SetExtraHeaders(extra_headers []sippy_header.SipHeader)
- func (self *Ua) SetFailCb(fail_cb sippy_types.OnFailureListener)
- func (self *Ua) SetKaInterval(ka time.Duration)
- func (self *Ua) SetLCSeq(cseq int)
- func (self *Ua) SetLContact(contact *sippy_header.SipContact)
- func (self *Ua) SetLSDP(msg sippy_types.MsgBody)
- func (self *Ua) SetLUri(from *sippy_header.SipFrom)
- func (self *Ua) SetLastScode(scode int)
- func (self *Ua) SetLateMedia(late_media bool)
- func (self *Ua) SetLocalUA(ua *sippy_header.SipUserAgent)
- func (self *Ua) SetNoProgressTime(no_progress_time time.Duration)
- func (self *Ua) SetNoReplyTime(no_reply_time time.Duration)
- func (self *Ua) SetNpMtime(t *sippy_time.MonoTime)
- func (self *Ua) SetNrMtime(t *sippy_time.MonoTime)
- func (self *Ua) SetOnLocalSdpChange(on_local_sdp_change sippy_types.OnLocalSdpChange)
- func (self *Ua) SetOnRemoteSdpChange(on_remote_sdp_change sippy_types.OnRemoteSdpChange)
- func (self *Ua) SetOnUacSetupComplete(fn func())
- func (self *Ua) SetOrigin(origin string)
- func (self *Ua) SetOutboundProxy(outbound_proxy *sippy_net.HostPort)
- func (self *Ua) SetP100Ts(ts *sippy_time.MonoTime)
- func (self *Ua) SetP1xxTs(ts *sippy_time.MonoTime)
- func (self *Ua) SetPassword(passwd string)
- func (self *Ua) SetPendingTr(tr sippy_types.ClientTransaction)
- func (self *Ua) SetRAddr(addr *sippy_net.HostPort)
- func (self *Ua) SetRAddr0(addr *sippy_net.HostPort)
- func (self *Ua) SetRSDP(sdp sippy_types.MsgBody)
- func (self *Ua) SetRTarget(url *sippy_header.SipURL)
- func (self *Ua) SetRUri(ruri *sippy_header.SipTo)
- func (self *Ua) SetRoutes(routes []*sippy_header.SipRoute)
- func (self *Ua) SetSetupTs(ts *sippy_time.MonoTime)
- func (self *Ua) SetSourceAddress(addr *sippy_net.HostPort)
- func (self *Ua) SetUasResp(resp sippy_types.SipResponse)
- func (self *Ua) SetUsername(username string)
- func (self *Ua) ShouldUseRefer() bool
- func (self *Ua) StartCreditTimer(rtime *sippy_time.MonoTime)
- func (self *Ua) StartExpireTimer(start *sippy_time.MonoTime)
- func (self *Ua) StartNoProgressTimer()
- func (self *Ua) StartNoReplyTimer()
- func (self *Ua) String() string
- func (self *Ua) UasLossEmul() int
- func (self *Ua) UpdateRouting(resp sippy_types.SipResponse, update_rtarget bool, reverse_routes bool)
- type UaStateConnected
- func (self *UaStateConnected) ID() sippy_types.UaStateID
- func (self UaStateConnected) IsConnected() bool
- func (self *UaStateConnected) OnActivation()
- func (self *UaStateConnected) OnDeactivate()
- func (UaStateConnected) RecvACK(sippy_types.SipRequest)
- func (self UaStateConnected) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UaStateConnected) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UaStateConnected) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UaStateConnected) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UaStateConnected) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UaStateConnected) String() string
- type UaStateDead
- func (self *UaStateDead) ID() sippy_types.UaStateID
- func (self UaStateDead) IsConnected() bool
- func (self *UaStateDead) OnActivation()
- func (UaStateDead) OnDeactivate()
- func (UaStateDead) RecvACK(sippy_types.SipRequest)
- func (self UaStateDead) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self UaStateDead) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UaStateDead) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UaStateDead) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UaStateDead) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UaStateDead) String() string
- type UaStateDisconnected
- func (self *UaStateDisconnected) ID() sippy_types.UaStateID
- func (self UaStateDisconnected) IsConnected() bool
- func (self *UaStateDisconnected) OnActivation()
- func (UaStateDisconnected) OnDeactivate()
- func (UaStateDisconnected) RecvACK(sippy_types.SipRequest)
- func (self UaStateDisconnected) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self UaStateDisconnected) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UaStateDisconnected) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UaStateDisconnected) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UaStateDisconnected) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UaStateDisconnected) String() string
- type UaStateFailed
- func (self *UaStateFailed) ID() sippy_types.UaStateID
- func (self UaStateFailed) IsConnected() bool
- func (self *UaStateFailed) OnActivation()
- func (UaStateFailed) OnDeactivate()
- func (UaStateFailed) RecvACK(sippy_types.SipRequest)
- func (self UaStateFailed) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self UaStateFailed) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UaStateFailed) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UaStateFailed) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UaStateFailed) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UaStateFailed) String() string
- type UacStateCancelling
- func (self *UacStateCancelling) ID() sippy_types.UaStateID
- func (self UacStateCancelling) IsConnected() bool
- func (self *UacStateCancelling) OnActivation()
- func (UacStateCancelling) OnDeactivate()
- func (UacStateCancelling) RecvACK(sippy_types.SipRequest)
- func (self UacStateCancelling) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self UacStateCancelling) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UacStateCancelling) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UacStateCancelling) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self *UacStateCancelling) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UacStateCancelling) String() string
- type UacStateIdle
- func (self *UacStateIdle) ID() sippy_types.UaStateID
- func (self UacStateIdle) IsConnected() bool
- func (UacStateIdle) OnActivation()
- func (UacStateIdle) OnDeactivate()
- func (UacStateIdle) RecvACK(sippy_types.SipRequest)
- func (self UacStateIdle) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UacStateIdle) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UacStateIdle) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UacStateIdle) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UacStateIdle) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UacStateIdle) String() string
- type UacStateRinging
- func (self *UacStateRinging) ID() sippy_types.UaStateID
- func (self UacStateRinging) IsConnected() bool
- func (UacStateRinging) OnActivation()
- func (UacStateRinging) OnDeactivate()
- func (UacStateRinging) RecvACK(sippy_types.SipRequest)
- func (self UacStateRinging) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UacStateRinging) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UacStateRinging) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UacStateRinging) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self *UacStateRinging) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UacStateRinging) String() string
- type UacStateTrying
- func (self *UacStateTrying) ID() sippy_types.UaStateID
- func (self UacStateTrying) IsConnected() bool
- func (UacStateTrying) OnActivation()
- func (UacStateTrying) OnDeactivate()
- func (UacStateTrying) RecvACK(sippy_types.SipRequest)
- func (self UacStateTrying) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UacStateTrying) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UacStateTrying) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UacStateTrying) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self *UacStateTrying) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UacStateTrying) String() string
- type UacStateUpdating
- func (self *UacStateUpdating) ID() sippy_types.UaStateID
- func (self UacStateUpdating) IsConnected() bool
- func (UacStateUpdating) OnActivation()
- func (UacStateUpdating) OnDeactivate()
- func (UacStateUpdating) RecvACK(sippy_types.SipRequest)
- func (self UacStateUpdating) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UacStateUpdating) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UacStateUpdating) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UacStateUpdating) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self *UacStateUpdating) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UacStateUpdating) String() string
- type UasStateIdle
- func (self *UasStateIdle) ID() sippy_types.UaStateID
- func (self UasStateIdle) IsConnected() bool
- func (UasStateIdle) OnActivation()
- func (UasStateIdle) OnDeactivate()
- func (UasStateIdle) RecvACK(sippy_types.SipRequest)
- func (self UasStateIdle) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self UasStateIdle) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UasStateIdle) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UasStateIdle) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UasStateIdle) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UasStateIdle) String() string
- type UasStatePreConnect
- func (self *UasStatePreConnect) ID() sippy_types.UaStateID
- func (self UasStatePreConnect) IsConnected() bool
- func (UasStatePreConnect) OnActivation()
- func (self *UasStatePreConnect) OnDeactivate()
- func (self *UasStatePreConnect) RecvACK(req sippy_types.SipRequest)
- func (self UasStatePreConnect) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UasStatePreConnect) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UasStatePreConnect) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UasStatePreConnect) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UasStatePreConnect) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UasStatePreConnect) String() string
- type UasStateRinging
- func (self *UasStateRinging) ID() sippy_types.UaStateID
- func (self UasStateRinging) IsConnected() bool
- func (UasStateRinging) OnActivation()
- func (UasStateRinging) OnDeactivate()
- func (UasStateRinging) RecvACK(sippy_types.SipRequest)
- func (self *UasStateRinging) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UasStateRinging) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UasStateRinging) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UasStateRinging) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UasStateRinging) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UasStateRinging) String() string
- type UasStateRingingRel
- func (self UasStateRingingRel) IsConnected() bool
- func (UasStateRingingRel) OnActivation()
- func (UasStateRingingRel) OnDeactivate()
- func (UasStateRingingRel) RecvACK(sippy_types.SipRequest)
- func (self *UasStateRingingRel) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self *UasStateRingingRel) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UasStateRingingRel) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- type UasStateTrying
- func (self *UasStateTrying) ID() sippy_types.UaStateID
- func (self UasStateTrying) IsConnected() bool
- func (UasStateTrying) OnActivation()
- func (UasStateTrying) OnDeactivate()
- func (UasStateTrying) RecvACK(sippy_types.SipRequest)
- func (self *UasStateTrying) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
- func (self *UasStateTrying) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UasStateTrying) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self UasStateTrying) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UasStateTrying) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UasStateTrying) String() string
- type UasStateUpdating
- func (self *UasStateUpdating) ID() sippy_types.UaStateID
- func (self UasStateUpdating) IsConnected() bool
- func (UasStateUpdating) OnActivation()
- func (UasStateUpdating) OnDeactivate()
- func (UasStateUpdating) RecvACK(sippy_types.SipRequest)
- func (self *UasStateUpdating) RecvCancel(rtime *sippy_time.MonoTime, inreq sippy_types.SipRequest)
- func (self *UasStateUpdating) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
- func (self UasStateUpdating) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
- func (self *UasStateUpdating) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
- func (self UasStateUpdating) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
- func (self *UasStateUpdating) String() string
- type UdpServer
- type UpdateLookupOpts
Constants ¶
const ( TRYING = sip_transaction_state(iota) RINGING COMPLETED CONFIRMED TERMINATED UACK )
Variables ¶
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 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, eh []sippy_header.SipHeader, 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) sippy_types.RtpProxyClient
func NewRtpProxyClientOpts ¶
func NewServerTransaction ¶
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, 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, config sippy_conf.Config) sippy_types.UaState
func NewUdpServerOpts ¶
func NewUdpServerOpts(laddress *sippy_net.HostPort, data_callback sippy_net.DataPacketReceiver) *udpServerOpts
func ParseSdpBody ¶
func ParseSipHeader ¶
func ParseSipMsg ¶
func ParseSipRequest ¶
func ParseSipResponse ¶
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) GetBody ¶
func (*CCEventDisconnect) GetBody() sippy_types.MsgBody
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) GetBody ¶
func (*CCEventFail) GetBody() sippy_types.MsgBody
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) GetBody ¶
func (self *CCEventPreConnect) GetBody() sippy_types.MsgBody
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, extra_headers ...sippy_header.SipHeader) *CCEventRedirect
func (*CCEventRedirect) GetBody ¶
func (*CCEventRedirect) GetBody() sippy_types.MsgBody
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) SetScode ¶
func (self *CCEventRing) SetScode(scode int)
func (*CCEventRing) SetScodeReason ¶
func (self *CCEventRing) SetScodeReason(scode_reason string)
func (*CCEventRing) String ¶
func (self *CCEventRing) String() string
type CCEventTry ¶
type CCEventTry struct { CCEventGeneric // contains filtered or unexported fields }
func NewCCEventTry ¶
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) GetSipAuthorizationBody ¶
func (self *CCEventTry) GetSipAuthorizationBody() *sippy_header.SipAuthorizationBody
func (*CCEventTry) GetSipAuthorizationHF ¶
func (self *CCEventTry) GetSipAuthorizationHF() sippy_header.SipAuthorizationHeader
func (*CCEventTry) GetSipCallId ¶
func (self *CCEventTry) GetSipCallId() *sippy_header.SipCallId
func (*CCEventTry) SetRoutes ¶
func (self *CCEventTry) SetRoutes(routes []*sippy_header.SipRoute)
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, opts *rtpProxyClientOpts) *Rtp_proxy_client_base
func (*Rtp_proxy_client_base) Address ¶
func (self *Rtp_proxy_client_base) Address() net.Addr
func (*Rtp_proxy_client_base) GetActiveSessions ¶
func (self *Rtp_proxy_client_base) GetActiveSessions() int64
func (*Rtp_proxy_client_base) GetActiveStreams ¶
func (self *Rtp_proxy_client_base) GetActiveStreams() int64
func (*Rtp_proxy_client_base) GetOpts ¶
func (self *Rtp_proxy_client_base) GetOpts() sippy_types.RtpProxyClientOpts
func (*Rtp_proxy_client_base) GetPReceived ¶
func (self *Rtp_proxy_client_base) GetPReceived() int64
func (*Rtp_proxy_client_base) GetPTransmitted ¶
func (self *Rtp_proxy_client_base) GetPTransmitted() int64
func (*Rtp_proxy_client_base) GetProxyAddress ¶
func (self *Rtp_proxy_client_base) GetProxyAddress() string
func (*Rtp_proxy_client_base) GetRtpcDelay ¶
func (self *Rtp_proxy_client_base) GetRtpcDelay() float64
func (*Rtp_proxy_client_base) GetSessionsCreated ¶
func (self *Rtp_proxy_client_base) GetSessionsCreated() int64
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) 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) IsShutDown ¶
func (self *Rtp_proxy_client_base) IsShutDown() bool
func (*Rtp_proxy_client_base) Reconnect ¶
func (self *Rtp_proxy_client_base) Reconnect(addr net.Addr, bind_addr *sippy_net.HostPort)
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))
func (*Rtp_proxy_client_base) Shutdown ¶
func (self *Rtp_proxy_client_base) Shutdown()
func (*Rtp_proxy_client_base) Start ¶
func (self *Rtp_proxy_client_base) Start() error
func (*Rtp_proxy_client_base) TNotSupported ¶
func (self *Rtp_proxy_client_base) TNotSupported() bool
func (*Rtp_proxy_client_base) UpdateActive ¶
func (self *Rtp_proxy_client_base) UpdateActive(active_sessions, sessions_created, active_streams, preceived, ptransmitted int64)
func (*Rtp_proxy_client_base) WdntSupported ¶
func (self *Rtp_proxy_client_base) WdntSupported() 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_cmd ¶
type Rtp_proxy_cmd struct { Type byte ULOpts *UpdateLookupOpts CommandOpts string CallId string Args string Nretr int }
func NewRtp_proxy_cmd ¶
func NewRtp_proxy_cmd(cmd string) (*Rtp_proxy_cmd, error)
func (*Rtp_proxy_cmd) String ¶
func (self *Rtp_proxy_cmd) String() string
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) (*Rtp_proxy_session, error)
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, result_callback func(sippy_types.MsgBody)) error
func (*Rtp_proxy_session) OnCallerSdpChange ¶
func (self *Rtp_proxy_session) OnCallerSdpChange(sdp_body sippy_types.MsgBody, 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 Rtpp_stats ¶
type Rtpp_stats struct { Verbose bool // contains filtered or unexported fields }
func NewRtpp_stats ¶
func NewRtpp_stats(snames []string) *Rtpp_stats
func (*Rtpp_stats) AllNames ¶
func (self *Rtpp_stats) AllNames() []string
func (*Rtpp_stats) ParseAndAdd ¶
func (self *Rtpp_stats) ParseAndAdd(rstr string) error
def __iadd__(self, other):
for sname in self.all_names: aname = self.spookyprefix + sname self.__dict__[aname] += other.__dict__[aname] return self
func (*Rtpp_stats) String ¶
func (self *Rtpp_stats) String() string
type SdpSession ¶
type SdpSession struct {
// contains filtered or unexported fields
}
func NewSdpSession ¶
func NewSdpSession() *SdpSession
func (*SdpSession) FixupVersion ¶
func (self *SdpSession) FixupVersion(body sippy_types.MsgBody) error
type Timeout ¶
type Timeout struct {
// contains filtered or unexported fields
}
func NewInactiveTimeout ¶
func StartTimeout ¶
func StartTimeoutWithSpread ¶
func (*Timeout) SpreadRuns ¶
type Ua ¶
type Ua struct {
// contains filtered or unexported fields
}
func (*Ua) BeforeRequestSent ¶
func (self *Ua) BeforeRequestSent(sippy_types.SipRequest)
func (*Ua) BeforeResponseSent ¶
func (self *Ua) BeforeResponseSent(sippy_types.SipResponse)
func (*Ua) BeginClientTransaction ¶
func (self *Ua) BeginClientTransaction(req sippy_types.SipRequest, tr sippy_types.ClientTransaction)
func (*Ua) BeginNewClientTransaction ¶
func (self *Ua) BeginNewClientTransaction(req sippy_types.SipRequest, resp_receiver sippy_types.ResponseReceiver)
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, cb func())
func (*Ua) DelayedRemoteSdpUpdate ¶
func (self *Ua) DelayedRemoteSdpUpdate(event sippy_types.CCEvent, remote_sdp_body sippy_types.MsgBody)
func (*Ua) Disconnect ¶
func (*Ua) GenRequest ¶
func (*Ua) GetClientTransaction ¶
func (self *Ua) GetClientTransaction() sippy_types.ClientTransaction
func (*Ua) GetConnectTs ¶
func (self *Ua) GetConnectTs() *sippy_time.MonoTime
func (*Ua) GetController ¶
func (self *Ua) GetController() sippy_types.CallController
func (*Ua) GetDisconnectTs ¶
func (self *Ua) GetDisconnectTs() *sippy_time.MonoTime
func (*Ua) GetDlgHeaders ¶
func (self *Ua) GetDlgHeaders() []sippy_header.SipHeader
func (*Ua) GetExMtime ¶
func (self *Ua) GetExMtime() *sippy_time.MonoTime
func (*Ua) GetExpireTime ¶
func (*Ua) GetExtraHeaders ¶
func (self *Ua) GetExtraHeaders() []sippy_header.SipHeader
func (*Ua) GetGoDeadTimeout ¶
func (*Ua) GetKaInterval ¶
func (*Ua) GetLContact ¶
func (self *Ua) GetLContact() *sippy_header.SipContact
func (*Ua) GetLContacts ¶
func (self *Ua) GetLContacts() []*sippy_header.SipContact
func (*Ua) GetLastScode ¶
func (*Ua) GetLateMedia ¶
func (*Ua) GetLocalUA ¶
func (self *Ua) GetLocalUA() *sippy_header.SipUserAgent
func (*Ua) GetNoProgressTime ¶
func (*Ua) GetNoReplyTime ¶
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) GetOutboundProxy ¶
func (self *Ua) GetOutboundProxy() *sippy_net.HostPort
func (*Ua) GetPassAuth ¶
func (*Ua) GetPassword ¶
func (*Ua) GetPendingTr ¶
func (self *Ua) GetPendingTr() sippy_types.ClientTransaction
func (*Ua) GetRTarget ¶
func (self *Ua) GetRTarget() *sippy_header.SipURL
func (*Ua) GetRemoteUA ¶
func (*Ua) GetSessionLock ¶
func (*Ua) GetSetupTs ¶
func (self *Ua) GetSetupTs() *sippy_time.MonoTime
func (*Ua) GetSourceAddress ¶
func (self *Ua) GetSourceAddress() *sippy_net.HostPort
func (*Ua) GetStateName ¶
func (*Ua) GetUasLossEmul ¶
func (*Ua) GetUasResp ¶
func (self *Ua) GetUasResp() sippy_types.SipResponse
func (*Ua) GetUsername ¶
func (*Ua) HasNoProgressTimer ¶
func (*Ua) HasNoReplyTimer ¶
func (*Ua) HasOnLocalSdpChange ¶
func (*Ua) HasOnRemoteSdpChange ¶
func (*Ua) OnEarlyUasDisconnect ¶
func (*Ua) OnLocalSdpChange ¶
func (*Ua) OnReinvite ¶
func (self *Ua) OnReinvite(req sippy_types.SipRequest, event_update sippy_types.CCEvent)
func (*Ua) OnRemoteSdpChange ¶
func (*Ua) OnUacSetupComplete ¶
func (self *Ua) OnUacSetupComplete()
func (*Ua) OnUnregister ¶
func (self *Ua) OnUnregister()
func (*Ua) RecvPRACK ¶
func (self *Ua) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
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) RegConsumer ¶
func (*Ua) ResetCreditTime ¶
func (*Ua) ResetOnLocalSdpChange ¶
func (self *Ua) ResetOnLocalSdpChange()
func (*Ua) ResetOnRemoteSdpChange ¶
func (self *Ua) ResetOnRemoteSdpChange()
func (*Ua) SendUasResponse ¶
func (*Ua) SetClientTransaction ¶
func (self *Ua) SetClientTransaction(tr sippy_types.ClientTransaction)
func (*Ua) SetConnectTs ¶
func (self *Ua) SetConnectTs(connect_ts *sippy_time.MonoTime)
func (*Ua) SetCreditTime ¶
func (*Ua) SetDisconnectTs ¶
func (self *Ua) SetDisconnectTs(ts *sippy_time.MonoTime)
func (*Ua) SetDlgHeaders ¶
func (self *Ua) SetDlgHeaders(hdrs []sippy_header.SipHeader)
func (*Ua) SetExMtime ¶
func (self *Ua) SetExMtime(t *sippy_time.MonoTime)
func (*Ua) SetExpireStartsOnSetup ¶
func (*Ua) SetExpireTime ¶
func (*Ua) SetExtraHeaders ¶
func (self *Ua) SetExtraHeaders(extra_headers []sippy_header.SipHeader)
func (*Ua) SetKaInterval ¶
func (*Ua) SetLContact ¶
func (self *Ua) SetLContact(contact *sippy_header.SipContact)
func (*Ua) SetLastScode ¶
func (*Ua) SetLateMedia ¶
func (*Ua) SetLocalUA ¶
func (self *Ua) SetLocalUA(ua *sippy_header.SipUserAgent)
func (*Ua) SetNoProgressTime ¶
func (*Ua) SetNoReplyTime ¶
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) SetOnUacSetupComplete ¶
func (self *Ua) SetOnUacSetupComplete(fn func())
func (*Ua) SetOutboundProxy ¶
func (self *Ua) SetOutboundProxy(outbound_proxy *sippy_net.HostPort)
func (*Ua) SetPassword ¶
func (*Ua) SetPendingTr ¶
func (self *Ua) SetPendingTr(tr sippy_types.ClientTransaction)
func (*Ua) SetRTarget ¶
func (self *Ua) SetRTarget(url *sippy_header.SipURL)
func (*Ua) SetSetupTs ¶
func (self *Ua) SetSetupTs(ts *sippy_time.MonoTime)
func (*Ua) SetSourceAddress ¶
func (self *Ua) SetSourceAddress(addr *sippy_net.HostPort)
func (*Ua) SetUasResp ¶
func (self *Ua) SetUasResp(resp sippy_types.SipResponse)
func (*Ua) SetUsername ¶
func (*Ua) ShouldUseRefer ¶
func (*Ua) StartCreditTimer ¶
func (self *Ua) StartCreditTimer(rtime *sippy_time.MonoTime)
func (*Ua) StartExpireTimer ¶
func (self *Ua) StartExpireTimer(start *sippy_time.MonoTime)
func (*Ua) StartNoProgressTimer ¶
func (self *Ua) StartNoProgressTimer()
func (*Ua) StartNoReplyTimer ¶
func (self *Ua) StartNoReplyTimer()
func (*Ua) UasLossEmul ¶
func (*Ua) UpdateRouting ¶
type UaStateConnected ¶
type UaStateConnected struct {
// contains filtered or unexported fields
}
func NewUaStateConnected ¶
func NewUaStateConnected(ua sippy_types.UA, config sippy_conf.Config) *UaStateConnected
func (*UaStateConnected) ID ¶
func (self *UaStateConnected) ID() sippy_types.UaStateID
func (UaStateConnected) IsConnected ¶
func (self UaStateConnected) IsConnected() bool
func (*UaStateConnected) OnActivation ¶
func (self *UaStateConnected) OnActivation()
func (*UaStateConnected) OnDeactivate ¶
func (self *UaStateConnected) OnDeactivate()
func (UaStateConnected) RecvCancel ¶
func (self UaStateConnected) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UaStateConnected) RecvEvent ¶
func (self *UaStateConnected) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UaStateConnected) RecvPRACK ¶
func (self UaStateConnected) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UaStateConnected) RecvRequest ¶
func (self *UaStateConnected) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UaStateConnected) RecvResponse ¶
func (self UaStateConnected) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
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, config sippy_conf.Config) *UaStateDead
func (*UaStateDead) ID ¶
func (self *UaStateDead) ID() sippy_types.UaStateID
func (UaStateDead) IsConnected ¶
func (self UaStateDead) IsConnected() bool
func (*UaStateDead) OnActivation ¶
func (self *UaStateDead) OnActivation()
func (UaStateDead) OnDeactivate ¶
func (UaStateDead) OnDeactivate()
func (UaStateDead) RecvCancel ¶
func (self UaStateDead) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (UaStateDead) RecvEvent ¶
func (self UaStateDead) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UaStateDead) RecvPRACK ¶
func (self UaStateDead) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UaStateDead) RecvRequest ¶
func (self UaStateDead) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UaStateDead) RecvResponse ¶
func (self UaStateDead) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
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, config sippy_conf.Config) *UaStateDisconnected
func (*UaStateDisconnected) ID ¶
func (self *UaStateDisconnected) ID() sippy_types.UaStateID
func (UaStateDisconnected) IsConnected ¶
func (self UaStateDisconnected) IsConnected() bool
func (*UaStateDisconnected) OnActivation ¶
func (self *UaStateDisconnected) OnActivation()
func (UaStateDisconnected) OnDeactivate ¶
func (UaStateDisconnected) OnDeactivate()
func (UaStateDisconnected) RecvCancel ¶
func (self UaStateDisconnected) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (UaStateDisconnected) RecvEvent ¶
func (self UaStateDisconnected) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UaStateDisconnected) RecvPRACK ¶
func (self UaStateDisconnected) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UaStateDisconnected) RecvRequest ¶
func (self *UaStateDisconnected) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UaStateDisconnected) RecvResponse ¶
func (self UaStateDisconnected) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
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, config sippy_conf.Config) *UaStateFailed
func (*UaStateFailed) ID ¶
func (self *UaStateFailed) ID() sippy_types.UaStateID
func (UaStateFailed) IsConnected ¶
func (self UaStateFailed) IsConnected() bool
func (*UaStateFailed) OnActivation ¶
func (self *UaStateFailed) OnActivation()
func (UaStateFailed) OnDeactivate ¶
func (UaStateFailed) OnDeactivate()
func (UaStateFailed) RecvCancel ¶
func (self UaStateFailed) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (UaStateFailed) RecvEvent ¶
func (self UaStateFailed) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UaStateFailed) RecvPRACK ¶
func (self UaStateFailed) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UaStateFailed) RecvRequest ¶
func (self UaStateFailed) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UaStateFailed) RecvResponse ¶
func (self UaStateFailed) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
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, config sippy_conf.Config) *UacStateCancelling
func (*UacStateCancelling) ID ¶
func (self *UacStateCancelling) ID() sippy_types.UaStateID
func (UacStateCancelling) IsConnected ¶
func (self UacStateCancelling) IsConnected() bool
func (*UacStateCancelling) OnActivation ¶
func (self *UacStateCancelling) OnActivation()
func (UacStateCancelling) OnDeactivate ¶
func (UacStateCancelling) OnDeactivate()
func (UacStateCancelling) RecvCancel ¶
func (self UacStateCancelling) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (UacStateCancelling) RecvEvent ¶
func (self UacStateCancelling) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UacStateCancelling) RecvPRACK ¶
func (self UacStateCancelling) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UacStateCancelling) RecvRequest ¶
func (self UacStateCancelling) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (*UacStateCancelling) RecvResponse ¶
func (self *UacStateCancelling) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
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) ID ¶
func (self *UacStateIdle) ID() sippy_types.UaStateID
func (UacStateIdle) IsConnected ¶
func (self UacStateIdle) IsConnected() bool
func (UacStateIdle) OnActivation ¶
func (UacStateIdle) OnActivation()
func (UacStateIdle) OnDeactivate ¶
func (UacStateIdle) OnDeactivate()
func (UacStateIdle) RecvCancel ¶
func (self UacStateIdle) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UacStateIdle) RecvEvent ¶
func (self *UacStateIdle) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UacStateIdle) RecvPRACK ¶
func (self UacStateIdle) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UacStateIdle) RecvRequest ¶
func (self UacStateIdle) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UacStateIdle) RecvResponse ¶
func (self UacStateIdle) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
func (*UacStateIdle) String ¶
func (self *UacStateIdle) String() string
type UacStateRinging ¶
type UacStateRinging struct {
// contains filtered or unexported fields
}
func (*UacStateRinging) ID ¶
func (self *UacStateRinging) ID() sippy_types.UaStateID
func (UacStateRinging) IsConnected ¶
func (self UacStateRinging) IsConnected() bool
func (UacStateRinging) OnActivation ¶
func (UacStateRinging) OnActivation()
func (UacStateRinging) OnDeactivate ¶
func (UacStateRinging) OnDeactivate()
func (UacStateRinging) RecvCancel ¶
func (self UacStateRinging) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UacStateRinging) RecvEvent ¶
func (self *UacStateRinging) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UacStateRinging) RecvPRACK ¶
func (self UacStateRinging) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UacStateRinging) RecvRequest ¶
func (self UacStateRinging) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (*UacStateRinging) RecvResponse ¶
func (self *UacStateRinging) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
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) ID ¶
func (self *UacStateTrying) ID() sippy_types.UaStateID
func (UacStateTrying) IsConnected ¶
func (self UacStateTrying) IsConnected() bool
func (UacStateTrying) OnActivation ¶
func (UacStateTrying) OnActivation()
func (UacStateTrying) OnDeactivate ¶
func (UacStateTrying) OnDeactivate()
func (UacStateTrying) RecvCancel ¶
func (self UacStateTrying) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UacStateTrying) RecvEvent ¶
func (self *UacStateTrying) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UacStateTrying) RecvPRACK ¶
func (self UacStateTrying) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UacStateTrying) RecvRequest ¶
func (self UacStateTrying) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (*UacStateTrying) RecvResponse ¶
func (self *UacStateTrying) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
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) ID ¶
func (self *UacStateUpdating) ID() sippy_types.UaStateID
func (UacStateUpdating) IsConnected ¶
func (self UacStateUpdating) IsConnected() bool
func (UacStateUpdating) OnActivation ¶
func (UacStateUpdating) OnActivation()
func (UacStateUpdating) OnDeactivate ¶
func (UacStateUpdating) OnDeactivate()
func (UacStateUpdating) RecvCancel ¶
func (self UacStateUpdating) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UacStateUpdating) RecvEvent ¶
func (self *UacStateUpdating) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UacStateUpdating) RecvPRACK ¶
func (self UacStateUpdating) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UacStateUpdating) RecvRequest ¶
func (self *UacStateUpdating) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (*UacStateUpdating) RecvResponse ¶
func (self *UacStateUpdating) RecvResponse(resp sippy_types.SipResponse, tr sippy_types.ClientTransaction) (sippy_types.UaState, func())
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) ID ¶
func (self *UasStateIdle) ID() sippy_types.UaStateID
func (UasStateIdle) IsConnected ¶
func (self UasStateIdle) IsConnected() bool
func (UasStateIdle) OnActivation ¶
func (UasStateIdle) OnActivation()
func (UasStateIdle) OnDeactivate ¶
func (UasStateIdle) OnDeactivate()
func (UasStateIdle) RecvCancel ¶
func (self UasStateIdle) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (UasStateIdle) RecvEvent ¶
func (self UasStateIdle) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UasStateIdle) RecvPRACK ¶
func (self UasStateIdle) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UasStateIdle) RecvRequest ¶
func (self *UasStateIdle) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UasStateIdle) RecvResponse ¶
func (self UasStateIdle) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
func (*UasStateIdle) String ¶
func (self *UasStateIdle) String() string
type UasStatePreConnect ¶
type UasStatePreConnect struct {
// contains filtered or unexported fields
}
func NewUasStatePreConnect ¶
func NewUasStatePreConnect(ua sippy_types.UA, config sippy_conf.Config, confirm_connect bool) *UasStatePreConnect
func (*UasStatePreConnect) ID ¶
func (self *UasStatePreConnect) ID() sippy_types.UaStateID
func (UasStatePreConnect) IsConnected ¶
func (self UasStatePreConnect) IsConnected() bool
func (UasStatePreConnect) OnActivation ¶
func (UasStatePreConnect) OnActivation()
func (*UasStatePreConnect) OnDeactivate ¶
func (self *UasStatePreConnect) OnDeactivate()
func (*UasStatePreConnect) RecvACK ¶
func (self *UasStatePreConnect) RecvACK(req sippy_types.SipRequest)
func (UasStatePreConnect) RecvCancel ¶
func (self UasStatePreConnect) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UasStatePreConnect) RecvEvent ¶
func (self *UasStatePreConnect) RecvEvent(event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UasStatePreConnect) RecvPRACK ¶
func (self UasStatePreConnect) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UasStatePreConnect) RecvRequest ¶
func (self *UasStatePreConnect) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UasStatePreConnect) RecvResponse ¶
func (self UasStatePreConnect) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
func (*UasStatePreConnect) String ¶
func (self *UasStatePreConnect) String() string
type UasStateRinging ¶
type UasStateRinging struct {
// contains filtered or unexported fields
}
func NewUasStateRinging ¶
func NewUasStateRinging(ua sippy_types.UA, config sippy_conf.Config) *UasStateRinging
func (*UasStateRinging) ID ¶
func (self *UasStateRinging) ID() sippy_types.UaStateID
func (UasStateRinging) IsConnected ¶
func (self UasStateRinging) IsConnected() bool
func (UasStateRinging) OnActivation ¶
func (UasStateRinging) OnActivation()
func (UasStateRinging) OnDeactivate ¶
func (UasStateRinging) OnDeactivate()
func (*UasStateRinging) RecvCancel ¶
func (self *UasStateRinging) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UasStateRinging) RecvEvent ¶
func (self *UasStateRinging) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UasStateRinging) RecvPRACK ¶
func (self UasStateRinging) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UasStateRinging) RecvRequest ¶
func (self *UasStateRinging) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UasStateRinging) RecvResponse ¶
func (self UasStateRinging) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
func (*UasStateRinging) String ¶
func (self *UasStateRinging) String() string
type UasStateRingingRel ¶
type UasStateRingingRel struct { *UasStateRinging // contains filtered or unexported fields }
func NewUasStateRingingRel ¶
func NewUasStateRingingRel(ua sippy_types.UA, config sippy_conf.Config) *UasStateRingingRel
func (UasStateRingingRel) IsConnected ¶
func (self UasStateRingingRel) IsConnected() bool
func (UasStateRingingRel) OnActivation ¶
func (UasStateRingingRel) OnActivation()
func (UasStateRingingRel) OnDeactivate ¶
func (UasStateRingingRel) OnDeactivate()
func (*UasStateRingingRel) RecvEvent ¶
func (self *UasStateRingingRel) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (*UasStateRingingRel) RecvPRACK ¶
func (self *UasStateRingingRel) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UasStateRingingRel) RecvResponse ¶
func (self UasStateRingingRel) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
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) ID ¶
func (self *UasStateTrying) ID() sippy_types.UaStateID
func (UasStateTrying) IsConnected ¶
func (self UasStateTrying) IsConnected() bool
func (UasStateTrying) OnActivation ¶
func (UasStateTrying) OnActivation()
func (UasStateTrying) OnDeactivate ¶
func (UasStateTrying) OnDeactivate()
func (*UasStateTrying) RecvCancel ¶
func (self *UasStateTrying) RecvCancel(rtime *sippy_time.MonoTime, req sippy_types.SipRequest)
func (*UasStateTrying) RecvEvent ¶
func (self *UasStateTrying) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UasStateTrying) RecvPRACK ¶
func (self UasStateTrying) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (UasStateTrying) RecvRequest ¶
func (self UasStateTrying) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UasStateTrying) RecvResponse ¶
func (self UasStateTrying) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
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) ID ¶
func (self *UasStateUpdating) ID() sippy_types.UaStateID
func (UasStateUpdating) IsConnected ¶
func (self UasStateUpdating) IsConnected() bool
func (UasStateUpdating) OnActivation ¶
func (UasStateUpdating) OnActivation()
func (UasStateUpdating) OnDeactivate ¶
func (UasStateUpdating) OnDeactivate()
func (*UasStateUpdating) RecvCancel ¶
func (self *UasStateUpdating) RecvCancel(rtime *sippy_time.MonoTime, inreq sippy_types.SipRequest)
func (*UasStateUpdating) RecvEvent ¶
func (self *UasStateUpdating) RecvEvent(_event sippy_types.CCEvent) (sippy_types.UaState, func(), error)
func (UasStateUpdating) RecvPRACK ¶
func (self UasStateUpdating) RecvPRACK(req sippy_types.SipRequest, resp sippy_types.SipResponse)
func (*UasStateUpdating) RecvRequest ¶
func (self *UasStateUpdating) RecvRequest(req sippy_types.SipRequest, t sippy_types.ServerTransaction) (sippy_types.UaState, func())
func (UasStateUpdating) RecvResponse ¶
func (self UasStateUpdating) RecvResponse(resp sippy_types.SipResponse, t sippy_types.ClientTransaction) (sippy_types.UaState, func())
func (*UasStateUpdating) String ¶
func (self *UasStateUpdating) String() string
type UdpServer ¶
type UdpServer struct {
// contains filtered or unexported fields
}
func NewUdpServer ¶
func (*UdpServer) GetLAddress ¶
func (self *UdpServer) GetLAddress() *sippy_net.HostPort
func (*UdpServer) SendToWithCb ¶
type UpdateLookupOpts ¶
type UpdateLookupOpts struct { DestinationIP string LocalIP string Codecs []string Otherparams string RemoteIP string RemotePort string FromTag string ToTag string NotifySocket string NotifyTag string SubArgs string }
func NewUpdateLookupOpts ¶
func NewUpdateLookupOpts(s, args string) (*UpdateLookupOpts, error)
Source Files ¶
- base_transaction.go
- cc_event_redirect.go
- cc_events.go
- client_transaction.go
- default_sip_transport.go
- esip_parse_exception.go
- keepalive_controller.go
- local4remote.go
- msg_body.go
- redirect_controller.go
- rtp_proxy_client.go
- rtp_proxy_client_opts.go
- rtp_proxy_client_stream.go
- rtp_proxy_client_udp.go
- rtp_proxy_cmd.go
- rtp_proxy_session.go
- rtpps_side.go
- sdp_body.go
- sdp_session.go
- server_transaction.go
- sip_header.go
- sip_msg.go
- sip_request.go
- sip_response.go
- sip_transaction_manager.go
- stateful_proxy.go
- timeout.go
- ua.go
- ua_state_connected.go
- ua_state_dead.go
- ua_state_disconnected.go
- ua_state_failed.go
- ua_state_generic.go
- uac_state_cancelling.go
- uac_state_idle.go
- uac_state_ringing.go
- uac_state_trying.go
- uac_state_updating.go
- uas_state_idle.go
- uas_state_preconnect.go
- uas_state_ringing.go
- uas_state_ringing_rel.go
- uas_state_trying.go
- uas_state_updating.go
- udp_server.go