-
Notifications
You must be signed in to change notification settings - Fork 42
Home
This repository contains a fork of PJSIP, for use with Asterisk. This fork should be temporary, with all changes pushed upstream for inclusion.
The PJSIP 2.2 release contains all of the patches necessary for building and running Asterisk. The master
branch of this fork is currently identical to PJSIP 2.2. Please download PJSIP from the PJSIP download site.
This page, and this fork, remain for historical reference.
If you have any problems with the packaging or other changes made in this fork, or would like to submit a patch to this fork, please file an issue in the Asterisk issue tracker.
Instructions for building PJSIP for Asterisk can be found on the Asterisk wiki.
The primary goal of this fork is to create a package-able build of PJSIP that's acceptable to the distributions. Since we don't want to maintain the fork forever, we need to be able to clearly identify different patches, and their purposes.
The upstream
branch will contain the pristine sources from PJSIP. Since the PJSIP source contains empty directories, a .keep
file should be added to the directory in order to track it in git.
The patch/*
branches contain our patches to PJSIP. Each patch branch
The master
branch is then simply the upstream
branch with all of the patch/*
branches merged.
# Create the branch
$ git checkout -b patch/my-super-cool-patch upstream
# Make your changes; commit; repeat
# Push the branch
$ git push --set-upstream origin patch/my-super-cool-patch
# Merge to master
$ git checkout master
$ git pull origin patch/my-super-cool-patch
# Fix merge conflicts, if any
# Push master
$ git push origin master
Aside from the checkout command, this is identical to how you create a new patch branch.
# Checkout the branch
$ git checkout patch/my-super-cool-patch
# Make your changes; commit; repeat
# Push the branch
$ git push origin patch/my-super-cool-patch
# Merge to master
$ git checkout master
$ git pull origin patch/my-super-cool-patch
# Fix merge conflicts, if any
# Push master
$ git push origin master
To import an updated version of PJSIP:
- Import new sources into
upstream
$ git checkout upstream
$ git pull
$ rm -rf *
$ tar --strip-components 1 -xjf pjproject-2.0.1.tar.bz2
$ find . -name .git -prune -o -type d -empty -exec touch {}/.keep \; # keep empty dirs
$ git add -A
$ git commit -m "Import pjproject-2.0.1"
$ git tag -a pjproject-2.0.1 -m "tag upstream pjproject-2.0.1"
$ git push
$ git push --tags
- Rebase
patch/*
branches for newupstream
$ git checkout patch/foo
$ git pull
$ git rebase upstream
# fix conflicts
$ git push --force
- Merge
patch/*
intomaster
$ git checkout master
# You may want to pull and tag, in order to not lose what's on master
$ git reset --hard upstream
$ git pull --no-ff origin patch/foo # do for each patch/* branch
# when all patches are merged and conflicts resolved
$ git push --force